js实现异步跨域上传
无聊写点东西,希望对一些朋友有用,先上代码
这是前端代码
后台使用的java的jfinal框架
public void upload() {//保存文件getFile("file");//这是返回信息String returnMessage = "成功了";//这里传回页面的信息必须是如下格式前端会自动传到后台一个uploadCall的参数,返回一段可执行的js代码,所以是renderHtmlrenderHtml("");
}
示例图片
选择文件上传,成功了
原理其实很简单,由于要异步上传文件,我使用了隐藏的iframe来提交表单,这样页面就不会刷新,但是如果后台直接返回消息,前台由于跨域不能获取iframe中的内容,所以我们后台返回了一点js代码,调试你会发现参数uploadCall是一个跳转语句,也就是我们返回到前台的语句又进行了跳转,而跳转的页面就是我们前台域的页面,上图的404链接,因为我们没有这个页面,所以报了404,当然我们也不需要这个页面,因为我们需要的链接后的data参数,既然是同一个域了,我们也就可以获取iframe的window.location.search了,自然就拿到了我们的后台返回消息
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
