IE7中的jQuery JSON问题&;8,不在FF或Chrome中(已检查是否有多余的逗号!)
我对ajax上传脚本有一个恼人的问题,它在IE7和IE8中抛出了一个错误。我已经检查了我的代码,看不出问题出在哪里。错误如下: 消息:“result.filename”为空或不是对象 JSON响应是: responseText= {“结果”:{“成功”:true,“文件名”:“autechrea8d7909a2e964c36e04d9f53eea54f6c”},“id”:98} 我可以在其他浏览器中很好地访问responseText.result.filename-知道是什么导致IE问题吗 提前谢谢 编辑:这是我访问JSON响应的上下文:IE7中的jQuery JSON问题&;8,不在FF或Chrome中(已检查是否有多余的逗号!),jquery,ajax,json,internet-explorer,Jquery,Ajax,Json,Internet Explorer,我对ajax上传脚本有一个恼人的问题,它在IE7和IE8中抛出了一个错误。我已经检查了我的代码,看不出问题出在哪里。错误如下: 消息:“result.filename”为空或不是对象 JSON响应是: responseText= {“结果”:{“成功”:true,“文件名”:“autechrea8d7909a2e964c36e04d9f53eea54f6c”},“id”:98} 我可以在其他浏览器中很好地访问responseText.result.filename-知道是什么导致IE问题吗 提前
var uploader = new qq.FileUploader({
element: document.getElementById('file-uploader'),
action: '<?php echo url::base(TRUE) ?>page_images/create/' + page_id,
debug: true,
onComplete: function(id, fileName, responseJSON){
path = '/media/images/main_images/new_uploads" ?>';
path = path + '/' + String(responseJSON.result.filename) + '.jpg';
$('.page_images').prepend(
'<li style = "float:left; display: inline; margin-right: 5px; width: 110px; height: 140px;">' +
'<img src = "' + path + '" width = "100" height = "100" />' +
'<br />' +
'<a href= "/page_images/delete/' + responseJSON.id + '">' +
'<img src= "/media/images/icons/cross.png" alt="Delete" title="Delete" />' +
'</a>' +
'</li>');
deleteHandler();
}
});
var uploader=new qq.FileUploader({
元素:document.getElementById('file-uploader'),
操作:'page_images/create/'+page_id,
是的,
onComplete:函数(id、文件名、responseJSON){
路径='/media/images/main_-images/new_-uploads”“>';
path=path+'/'+字符串(responseJSON.result.filename)+'.jpg';
$('.page_images')。前缀(
“”+
'' +
“”);
deleteHandler();
}
});
这行是否有输入错误,或者您真的希望路径中有双引号和“>”
path = '/media/images/main_images/new_uploads" ?>';
此外,您真的应该声明所有变量。我认为您需要这样的内容:
var path = '/media/images/main_images/new_uploads';
return Json(new { success = false }, "text/html");
也许在注入HTML时,误用的双引号会让IE感到困惑。IE错误消息并没有那么有用
我还建议您将String(responseJSON.result.filename)
替换为responseJSON.result.filename
,以减少噪音
除此之外,我建议您仔细查看您准备的HTML块。您也可以内联JSON数据,看看会发生什么。我也遇到了同样的问题,在您返回JSON结果的操作中,将内容类型更改为“text/HTML”,如下所示:
var path = '/media/images/main_images/new_uploads';
return Json(new { success = false }, "text/html");
不管出于什么原因IE不喜欢其他方式。你认为你可以发布更多的代码吗?