gpt4 book ai didi

jquery - IE8 + Jquery ajax 调用从 dJango 给出解析器错误 : for json data which seems valid in Firefox

转载 作者:行者123 更新时间:2023-12-03 23:02:11 24 4
gpt4 key购买 nike

ajax调用在FF中工作正常。返回的数据是 JSON 格式,这是 FF firebug 的示例 -

{"noProfiles": "No profiles have been created, lets start now !"}

当我尝试在 IE8(以及兼容模式)中打印错误时,它显示“parsererror”。
但输出似乎是有效的 JSON。
这是我正在进行的 ajax 函数调用。
任何指点都会很棒!

$.ajax({   
type: "GET",
url: "/get_all_profile_details/",
data: "",
dataType: "json",
beforeSend: function() {alert("before send called");},
success: function(jsonData) {
alert("data received");
},
error: function(xhr, txt, err){
alert("xhr: " + xhr + "\n textStatus: " + txt + "\n errorThrown: " + err);
}
});

上面错误函数中的警报给出 -
xhr:<blank><br/>
textstatus:parsererror<br/>
errorThrown: undefined

任何指示都会很棒!
注意:jquery:1.3.2

最佳答案

这是我终于找到的解决方案!

IE 对 UTF-8 的态度很恶劣,不仅如此!
我的回应如下:

return HttpResponse(simplejson.dumps(response_dict),
content_type = 'application/json; charset=utf8')

现在 FF 和 Chrome 对此很擅长。
但对于 IE 来说 utf8 应该是这样的:

return HttpResponse(simplejson.dumps(response_dict),
content_type = 'application/json; charset=UTF-8')

注意大写 UTF -->> UTF-8

为了调试这个问题,我扔掉了 jquery 并编写了一个简单的 ajax 函数。

var xmlhttp = false;    
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST",urlToSend,false);
xmlhttp.send(af_pTempString);
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("POST",urlToSend,false);
// Do not send null for ActiveX
xmlhttp.send(af_pTempString);
}
//alert("xmlhttp.responseText : " + xmlhttp.responseText);
document.getElementById('navHolder').innerHTML = xmlhttp.responseText;

如果编码不正确,则会在 IE 中显示此错误 - c00ce56e

关于jquery - IE8 + Jquery ajax 调用从 dJango 给出解析器错误 : for json data which seems valid in Firefox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2659208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com