从后台返回json数据对象到前台,IE 支持,但是火狐却变成了文件下载(浏览器对application/json的支持问题)
【文件】 :importTemplateJson.action ;内容正确 :{"data":[{"merchantId":235,"merchantName":"xuboads"},{"merchantId":33,"merchantName":"225"}]}
处理 : 设置response.setHeader("Content-Type", "text/html"),改变默认application/json, 使返回的结果(非页面接收处理后的数据,而是服务器直接返回的数据)是字符串,而不是json, 同时页面接收类型设置为html 格式:dataType: 'text/plain' ; 这是你会意外的发现,json返回的时候,是标准的json 数据
{"data":[{"merchantId":235,"merchantName":"xuboads"},{"merchantId":33,"merchantName":"225"}]}
而 html 返回结果却是
<div align="">
<div></div>
{"data":[{"merchantId":235,"merchantName":"xuboads"},{"merchantId":33,"merchantName":"225"}]}
<div></div>
</div>
没办法 只能转换了,代码如下 :
data = data.substring(data.indexOf('{'),data.lastIndexOf('}')+1);
var message =eval('('+data+')');
var arry = message.data
处理OK !
PS : 如果修改ajaxfileupload.js 就从根本上解决了。 后续再跟