[英]AJAX response from IE9 contains invalid characters
我在IE9中收到了截然不同的JSON响应,并且不确定情况是否会崩溃:
我的JS(这是使用jquery形式- http://malsup.com/jquery/form/ ):
var self = this,
options = {
beforeSubmit: this.beforeSubmit,
uploadProgress: this.uploadProgress,
success: this.uploadSuccess,
resetForm: true
},
form = $(this.forms.addNewDocument);
$(form).ajaxSubmit(options);
我正在从uploadSuccess
记录响应。
在我的PHP中,在使用json_encode
之前,我得到的响应是:
array(2) {
["values"]=>
array(1) {
["categoryId"]=>
string(1) "1"
}
["template"]=>
array(1) {
["body"]=>
string(211) "<li id="18"><span class="doc-title">test4.txt</span> <span class="doc- date">9/30/2014</span> <span class="doc-user">Ling Chow</span><i class="fa fa-download"></i><i class="fa fa-times-circle"></i></li>"
}
}
然后,当我将数组包装在json_encode($myresult)
并记录ajax响应时,我得到以下信息:
In IE 9
{"values":{"categoryId":"1"},"template":{"body":"<li id='\"6\"'><span class='\"doc- title\"'>test.txt<\/span> <span class='\"doc-date\"'>9\/30\/2014<\/span> <span class='\"doc-user\"'>Ling Chow<\/span><i class='\"fa' fa-download\?=""><\/i><i class='\"fa' fa-times-circle\?=""><\/i><\/li>"}}</i></i></span></span></span></li>
In IE10/Chrome
{"values":{"categoryId":"1"},"template":{"body":"<li id=\"9\"><span class=\"doc-title\">accredmaster2.html<\/span> <span class=\"doc-date\">9\/30\/2014<\/span> <span class=\"doc-user\">Ling Chow<\/span><i class=\"fa fa-download\"><\/i><i class=\"fa fa-times-circle\"><\/i><\/li>"}}
IE9在其中添加了很多单引号,其中包含“?=“,看起来好像早就结束了JSON。 为什么会发生这种情况,为什么特定于IE9?
使用header('content-type: application/json');
在php中的json_encode
之前。 这将使IE9意识到您正在返回json,并且不会尝试转义所有内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.