前面介绍过iframe,也介绍过跨域请求,这里就不再赘述了。
今天在实际的业务中碰到了一个现象,一个erp管理系统,用到了上传图片和iframe访问其他的域名的情况,上传图片用到了ajaxfileupload,而这个上传图片的控件本身就有iframe,也就是说导致了一个页面中有2个iframe,导致我上传图片想返回操作结果的时候返回不到任何结果,例如
前台访问调用的方法
1
2
3
4
5
6
7
8
9
10
11
|
$.ajaxFileUpload({
url :
'http://*******.com/active/addImg.action'
, // 需要链接到服务器地址
secureuri :
false
,
fileElementId :
'imgFile'
,
// 文件选择框的id属性
cache :
false
,
dataType:
'json'
,
//返回值类型 一般设置为json
success :
function
(result,status) {
}
})
|
后台接收并返回
1
2
|
Result result= activeService.addImg(getImgFile(), getImgFileFileName());
print(result.resultJson());
|
无论调用多少次都无法返回结果,之后上网查询原因,才知道,在多个iframe中,返回结果的domian需要指定,后来在返回结果写成
1
2
|
Result result= activeService.addImg(getImgFile(), getImgFileFileName());
print(
"<script>document.domain = '******.com';</script>"
+result.resultJson());
|
结果就能正常显示了!!!
本文转自 xinsir999 51CTO博客,原文链接:http://blog.51cto.com/xinsir/1867513,如需转载请自行联系原作者