webuploader h5 跨域 上传 post
webuploader使用h5跨域上传时主要遇到2个问题
- 浏览器报错如下
1 | Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource |
- 跨域post没有带着cookie
解决办法
1 | $header = $this->request->getHeaders(); |
1 | uploader = WebUploader.create({ |
原因
某些跨域请求,浏览器会自动“预检”priflight,使用OPTION请求
也就是说,真正POST之前,浏览器会自动发送OPTION请求,请注意!!!这个请求似乎没有办法携带cookie,如果是有登录判断要提前处理
这时回复Access-Control-Allow-Credentials,要求 真正的POST请求要带上cookie
Access-Control-Allow-Origin是允许跨域
webuploader 只要在初始化时增加配置 withCredentials 即可携带cookie请求
参考资料
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS
http://blog.csdn.net/qq_35334476/article/details/77684952
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Dev!