具体需求是我前台提交跨域的form表单(含文件),然后他会返回个值给我,我获取这个值并进行回调处理,怎么搞?用了许多关于iframe的js方法都提示跨域报错
跨域,你在你form表单提交的的controller处理(具体看你怎么样的代码),而不是在前端做处理,前端你就看成普通提交
回复 @wanghahah:谢谢点拨!问题解决了,用的4.5版本httpclient回复 @高momo:403无非就是你请求类型不对,也有可能是直接binary形式,具体的你看下接口文档、或者你也可以贴出部分文档给我们看回复 @wanghahah:后台我也试了通过httpclient发post请求,并且带有文件,请求头Content-type设成multipart/form-data就报403,换成其他格式的那边又识别不了。。找不到解决办法还有我看楼下的评论,醉了,ajax可以同时传文件和表单js肯定是不行的,浏览器行为,你第三方接口因为服务端不会给你配置cors(例如:springaddCorsMappings添加允许跨域的url)、from直接提交表单不存在跨域问题(不通过js),但是存在接收响应xml/json这些(很少有人这么写);现在建议你只有通过后台代码请求接口好像是用一个叫做jsonp的东西 可以实现跨域
但是我要传文件。。ajax好像不能同时传form中的数据和文件兄弟,跨域提交就是个伪命题,会有各种安全问题的,你还是直接从你这边的后端绕绕合适
Js获取数据基本都有跨域问题,百度一下,很多相关文章的别玩这个
这个和网银提交交易以后跳回一个道理,几个方案:
1、提交成功以后通过重定向url的方式(提交给对方的url后面跟一个gourl参数,即:对方收到你的表单请求并处理完成以后,将会让浏览器重定向到你传给他的gourl,然后会带上参数告诉你gourl对应的后台程序处理是否成功,后台通过输出js/配合iframe就可以实现前段的js回调了)
2、改为使用swfupload,网上有跨域方案
3、文件等数据往自己的网站提交,然后自己的网站后台将请求转发到对方网站(这样前台就不跨域了)
第一个方法是试了下貌似即使返回值为js代码,跳转到我本地的代理文件或者页面,然后在这个代理页面操作父页面还是有跨域问题。要不就只能form提交到自身页面然后就刷新父页面跨域请求使用过jsonp格式的,注意ajax的属性与普通的ajax稍有不同,后台接受的时候要设请求头,用于识别跨域请求和获取参数。
谢谢大家的分享!问题解决了,走的后台用的4.5版本httpclient
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。