我做了一个AJAX调用,它可以在FF和Chrome上工作,但不能在IE 7-8-9上工作。我正在从域中加载一个JSON文件:
$.ajax({
url: 'js/jquery.desobbcode.json',
dataType: 'json',
cache: false,
success: function(json) {
alert('ok');
},
error: function(xhr, errorString, exception) {
alert("xhr.status="+xhr.status+" error="+errorString+" exception="+exception);
}
});我也尝试添加contentType: 'application/json',但得到相同的输出:
xhr.status=200
error=parsererror
exception=SyntaxError Unterminated string constant我用JSONLint检查了我的JSON文件,结果没问题。我检查了一下是否有多余的逗号,内容是否也被修剪了。See my JSON file
如果我放入dataType: 'text',我会收到OK警报,但也会弹出一个调试窗口。
你能帮我一下吗?致以问候。
发布于 2011-12-13 06:47:44
IE is known to have issues with implied content types.
...Internet Explorer7中的新XmlHttpRequest类没有非常直观地实现setRequestHeader。它不是设置指定的标头,而是追加该值。
尝试指定contentType并检查从服务器返回的内容:
$.ajax({
url: 'js/jquery.desobbcode.json',
dataType: 'json',
contentType: "application/json; charset=utf-8",
...
});您可能还想尝试发送空白数据:
$.ajax({
url: 'js/jquery.desobbcode.json',
dataType: 'json',
contentType: "application/json; charset=utf-8",
data: {}
...
});发布于 2012-11-16 18:33:31
如果您使用php脚本将json回显为字符串,只需将
header('Content-Type: application/json; charset=utf-8');在此之前
echo $jsonString线路。
发布于 2011-12-13 07:34:56
这是JSON中的换行符。这应该在IE中解析:
{"inputButton":[{"id":"desoBBCode_bold","value":"Gras","tag":"b"},{"id":"desoBBCode_italic","value":"Italique","tag":"i"},{"id":"desoBBCode_underline","value":"Souligné","tag":"u"},{"id":"desoBBCode_image","value":"Image","tag":"img"},{"id":"desoBBCode_link","value":"Lien","tag":"url"},{"id":"desoBBCode_quote","value":"Citation","tag":"quote"}],"selectTextSize":[{"text":"Taille","value":""},{"text":"Trèstrèspetit","value":"1"},{"text":"Trèspetit","value":"2"},{"text":"Petit","value":"3"},{"text":"Gros","value":"4"},{"text":"Trèsgros","value":"5"},{"text":"Trèstrèsgros","value":"6"}],"selectTextColor":[{"text":"Couleur","value":"a"},{"text":"Rouge","value":"red"},{"text":"Bleu","value":"blue"},{"text":"Vert","value":"green"}]}现场示例:http://jsbin.com/umahiq/edit
https://stackoverflow.com/questions/8481453
复制相似问题