esironal / dwz

Automatically exported from code.google.com/p/dwz
0 stars 0 forks source link

iframecallback 无法解析返回的json #46

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
使用隐藏iframe上传文件时,无法解析返回的json,总是直接弹�
��错误提示,直接显示json。
原因就是在iframe里返回的json数据,被包上一层 <pre></pre> 。
fx8 chrome12 ie8均有此现象。其中 chrome12 的pre还带style。

修正如下:dwz.ajax.js 
function _iframeResponse(iframe, callback){

原先
response = $iframe.contents().find("body").html();
response = jQuery.parseJSON(response);

修改
var body = $iframe.contents().find("body");
if(body.children().size() == 0){
    response = body.html();
}else{
    response = $("pre:first",body).html();
}
response = jQuery.parseJSON(response);

Original issue reported on code.google.com by virusc...@gmail.com on 21 Dec 2011 at 7:02

GoogleCodeExporter commented 8 years ago
Firefox下可以修复此问题。IE9仍有问题,json没有被正确解析,
出现下载页面。见图。
调试发现line 2293行以下,代码没有执行,不知什么原因。

Original comment by bluesk...@gmail.com on 9 Jul 2012 at 1:08

Attachments:

GoogleCodeExporter commented 8 years ago
参见:http://hi.baidu.com/cnkarl/item/2620d8e75dbf1dacc10d75dd
问题描述:
向隐藏的iframe提交表单数据后,返回的json数据会导致弹出一�
��下载框(提示下载返回的json数据)----- 
这和纯ajax请求不同,纯ajax请求会自动将json数据分析成object��
�

因而解决办法是将json数据作为纯文本返回。

所以DWZ的代码实际上是不需要修改的。

Original comment by bluesk...@gmail.com on 10 Jul 2012 at 7:00