怎么实现跨域,异步文件上传并返回处理结果

2024-11-27 23:16:24
推荐回答(1个)
回答1:

先讲讲如何跨域,跨域方法很多,访问方式其实与本域名访问没有很大不同。简单列举几个:

  1. 使用window.postMessage实现跨域通信。

  2. 使用ajax异步加载其他网站资源,如加载QQ登陆成功的资料。

  3. 头部的css、js,img标签中的src等,都可以填写外部的链接,都算跨域。

然后再讲讲异步文件上传,异步上传和异步上传文件其实很类似,下面是使用jq的ajaxupload插件进行上传的示例

$.ajaxFileUpload({
url: 'upload.action', //用于文件上传的服务器端请求地址
secureuri: false, //一般设置为false
fileElementId: 'upload', //文件上传控件的id属性  
dataType: 'json', //返回值类型 一般设置为json
success: function(data, status){ //服务器成功响应处理函数
alert(data.message); //从服务器返回的json中取出message中的数据,其中message为在struts2中action中定义的成员变量
$("#img").attr("src", data.imagePath);
if (typeof(data.error) != 'undefined'){
if (data.error != '') {
alert(data.error);
} else {
alert(data.message);
}
}
},
error: function(data, status, e) { //服务器响应失败处理函数
alert(e);
}

});