$.ajaxFileUpload上传图片问题

ice_baili 2012-07-26 01:46:35
在域内上传没有问题,跨域就不行
$.ajaxFileUpload({
url: 'http://www.xxx.com,
data: { //提交的数据{变量名:值 , 变量名:值}
act: '1'
},
secureuri: false,
fileElementId: fx,
dataType: 'json',
success: function (data) {
var txt = data;
alert(txt);
var obj = txt.split("||");
if (obj.length > 1 && obj[0] > 0) {
var length = $("#fxpic").find("li").length + 1;
var js_move_left = "move(" + length + ",'left')";
var js_move_right = "move(" + length + ",'right')";
var move_icon = '<div class="move_icon"><a href="javascript:void(0);" onclick="' + js_move_left + '" class="leftmove_icon"><img src="images/leftmove.png" /></a><a href="javascript:void(0);" onclick="' + js_move_right + '" class="rightmove_icon"><img src="images/rightmove.png" /></a><div class="clera"></div></div>';
$("#snpic").append('<li id="move_fx_' + length + '"><img src="' + basepic + obj[1] + '" class="onmouseover">' + move_icon + '<div class="func" id="_pics_default_' + obj[0] + '"><div class="set" onclick="set_defaultpic(' + obj[0] + ',\'sn\');">设为默认</div><div class="del" onclick="removetxt(' + obj[0] + ',\'sn\',this);">删</div></div></li>');
$("#snlist").show();
addtxt(txt, 'fx');
addid(obj[0], 'fx');
addpicid(obj[2], 'fx');
$("#uploadify_fx").uploadifySettings('queueSizeLimit', 10 - obj[2]);
} else {
// alert(obj[2]);
alert("aaa");
}
},
error: function (data) {
//alert("bbb");
}
});
}

参数能传送给指定的页面,json也能生成,但是回显不过来,不知道是怎么回事,我用的是jquery1.4.4版本,在ajaxfileupload_bj.js中语句

try {
if (io.contentWindow) {
xml.responseText = io.contentWindow.document.body ? io.contentWindow.document.body.innerHTML : null;
xml.responseXML = io.contentWindow.document.XMLDocument ? io.contentWindow.document.XMLDocument : io.contentWindow.document;

} else if (io.contentDocument) {
xml.responseText = io.contentDocument.document.body ? io.contentDocument.document.body.innerHTML : null;
xml.responseXML = io.contentDocument.document.XMLDocument ? io.contentDocument.document.XMLDocument : io.contentDocument.document;
}
}
其中alert(xml.responseText)不到数据,也就是说xml.responseXML获取不到数据,不知道是什么原因,我要返回的是json,已经将if (type == "json")
eval("data = " + data);改成eval("data = \" "+data+" \" ");但还是不行,请各位帮忙看一下~
...全文
230 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2012-07-26
  • 打赏
  • 举报
回复
跨域获取不到返回值的。

这个插件实际使用的是iframe来上传文件,将表单提交到iframe中,然后再iframe加载完毕后获取iframe中的内容,由于跨域了,无法操作iframe里面的内容,导致获取不到返回值。

跨域的话最好不要用js,可以使用flash之类的来处理,js无法控制跨域之类的内容
jilieryuyi 2012-07-26
  • 打赏
  • 举报
回复
跟我用的好像不大一样~~
我用的是 var upload= new AjaxUpload ....

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧