ajax跨域处理(仅限本地调试远程)
解决 has been blocked by CORS policy问题
原因
就是浏览器 同源策略 问题,或者叫 跨域问题 。
常见于用Chrome调试脚本的时候,需要加载的脚本和location不同源,或者跨域调用接口api。
错误呈现
POST方式请求接口
Access to XMLHttpRequest at 'https://api.xxx.com/v1/link/create' from origin 'https://www.xxx.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
解决方案
如果是get请求可以使用jsonp
,但post请求需要服务端进行设置。
平时在本地进行调试,则可以修改Chrome浏览器配置,创建一个用于调试的快捷方式,添加 启动参数,修改如下:
- 找到浏览器主程序所在位置→右键→发送到→桌面快捷方式
- 桌面快捷方式→右键→属性→快捷方式选项卡→目标-->>>在最后面追加 参数
--user-data-dir="c:\ChromeDebug" --test-type --disable-web-security