Internet Explorer不执行jQuery.load(Firefox确实如此)

时间:2012-01-22 16:56:34

标签: jquery internet-explorer xmlhttprequest

我正在尝试制作一个非常简单的CMS系统,到目前为止一切顺利。 但是现在当我试图将编辑页面加载到div.load - jQuery)时,IE不会显示它,Firefox会这样做。

这是我的加载代码

function edit_item(id){
    $('#row_'+id).load("actions/edit.php?id="+id, function(response, status, xhr) {
      if (status == "error") {
        var msg = "Sorry but there was an error: ";
        $('#row_'+id).html(msg + xhr.status + " " + xhr.statusText);
      }
    });
}

这是我要加载的页面

<?php
include('connect.php');
$item = resultset;
?>
<script>
$(function() {
    $("#datepicker").datepicker();
    $("#datepicker").datepicker("option", "dateFormat", "yy-mm-dd");
    var currentdate = $("#currentdate").val()
    $("#datepicker").datepicker('setDate', currentdate);

});
</script>
<form method="POST" action="actions/update.php">
    <input type="hidden" id="currentdate" value="<?=$item['datum']?>">
    <table style="border: 1px solid black; margin-left: 10px; width: 620px;">
        <tbody>
        <tr>
            <td>Titel</td>
            <td><input type="text" name="titel" class="input" style="width: 560px;" value="<?=$item['titel']?>"></td>
        </tr>
        <tr>
            <td>Datum</td>
            <td><input type="text" name="datum" class="input" id="datepicker" style="width: 560px;"></td>
        </tr>
        <tr>
            <td>Bericht</td>
            <td><textarea name="inhoud" class="input" style="width: 560px; height: 300px;"><?=$item['inhoud']?></textarea></td>
        </tr>
        <tr>
            <td>Foto's</td>
            <td>
                <input type="file" name="foto[]">
                <input type="file" name="foto[]">
                <input type="file" name="foto[]">
                <input type="file" name="foto[]">
                <input type="file" name="foto[]">
                <input type="file" name="foto[]">
            </td>
        </tr>
        <tr>
            <td colspan="2"><input type="submit" id="toevoegen" value="Updaten" class="input" style="float:right; margin-right: 5px; margin-top: 5px;"></td>
        </tr>
        </tbody>
    </table>
    <input type="hidden" name="id" value="<?=$_GET['id']?>">
    <input type="hidden" name="aktie" value="item">
</form>

Internet Explorer给了我这个错误:

  

抱歉,但是出现了错误:0错误:无法完成   由于错误c00ce56e而导致的操作。

解决方案: header('Content-Type: text/html; charset=UTF-8');正在做这个技巧,但是IE已经缓存了。当我清除它 - 它再次开始工作,谢谢!

2 个答案:

答案 0 :(得分:4)

Google搜索错误代码似乎表明问题是XHR响应的编码。

  

如果将XMLHttpRequests的编码头设置为header('Content-Type','text / html; charset = utf8');而不是标题('Content-Type','text / html; charset = UTF-8'); IE7会给出漂亮而明确的错误c00ce56e。

请参阅:http://blog.shpare.com/2008/03/04/error-c00ce56e-in-ie/

答案 1 :(得分:0)

  

从2.6版本开始,MSXML将所有XML文档通过Mlang.dll传递给   验证他们的编码。如果Mlang.dll遇到非标准编码   字符串,它返回错误。

     

“ISO8859_1”是Latin-1字符的规范表示   Java语言和类库中的编码字符串。标准   但是,由互联网号码分配机构定义,   是“ISO-8859-1”,这不是一个公认的别名。

http://support.microsoft.com/kb/304625

检查内容类型的字符集。