先讲讲如何跨域,跨域方法很多,访问方式其实与本域名访问没有很大不同。简单列举几个:
使用window.postMessage实现跨域通信。
使用ajax异步加载其他网站资源,如加载QQ登陆成功的资料。
头部的css、js,img标签中的src等,都可以填写外部的链接,都算跨域。
然后再讲讲异步文件上传,异步上传和异步上传文件其实很类似,下面是使用jq的ajaxupload插件进行上传的示例
$.ajaxFileUpload({ url: 'upload.action', //用于文件上传的服务器端请求地址 secureuri: false, //一般设置为false fileElementId: 'upload', //文件上传控件的id属性 <input type="file" id="upload" name="upload" /> 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) } }) 你可以考虑使用progress listener,例如下面的函数。 //Create a progress listener ProgressListener progressListener = new ProgressListener(){public void update(long pBytesRead, long pContentLength, int pItems) {System.out.println("We are currently reading item " + pItems) if (pContentLength == -1) {System.out.println("So far, " + pBytesRead + " bytes have been read.") } else {System.out.println("So far, " + pBytesRead + " of " + pContentLength + " bytes have been read.") }} }upload.setProgressListener(progressListener)欢迎分享,转载请注明来源:内存溢出
评论列表(0条)