不改动后台如何实现ajax的跨域post?
1.背景:需要实现微信H5支付无点击自动跳转,所以不能表单提交只能ajax自动提交。
服务器在别人那,因此对于跨域最常用的在服务端设置Access-Control-Allow-Origin的方案不可行
JSONP的get方法不安全,而且别人提供的post接口不一定能get请求过去。
2.单纯在前端做相关设置能否实现ajax跨域post?如何实现?
3.ajax似乎不允许重定向,如果post成功后会重定向,如何实现ajaxpost后重定向?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
纯前端不行的,可以自己写个转发服务器,用express+superagent
用nginx反向代理
比如: 把
http://ajax.googleapis.com/ajax/libs/*
转发到http://cdn.bootcss.com/
正规做法是CORS,确实需要改后端,JSONP只能get
自己也查阅了比较多的资料,看了纯前端ajax跨域post并没有很好的解决方案。目前自己的做法是写一个隐藏表单,调用这个表单的submit函数,这样可以解决跨域post的问题而不需要用到服务端
1.微信充值部分的调用页需要在公众号绑定安全域名地址的,所以这个肯定得在公众号平台那方。
2.充值是需要拉起WX的WeixinJSBridge.invoke,但需要绑定WX事件WeixinJSBridgeReady,则这部分也必须在1.里的范围内。
3.拉起WX授权充值是绝对不可能在非1.的范围内执行的,即使是iframe也不可能。
因此推荐和对方协商,让对方提供回调接口,如当充值成功,执行你这边的onPayOk()、onPayCancel()这类自定义的方法。
推荐用postMessage来传递数据。
补充:
你要触发充值,你的代码文件必须在1.的地址内,不然让对方提供
pay({
这种接口和调用js,只做提交的动作。
来来来,你需要这个代理