Chrome浏览器对于本地跨域请求的解决办法

在开发过程中遇到Chrome浏览器本地跨域请求的限制,通过修改快捷方式目标添加参数`--disable-web-security`(对于49版之前)或`--disable-web-security --user-data-dir=C:MyChromeDevUserData`(49版之后)来允许跨域。同时,服务器端PHP需要设置响应头,允许来自任何源的请求:`header('Access-Control-Allow-Origin: *');`,并指定允许的请求头和方法。

今天在给公司做短信触发平台时,遇到跨域权限问题,如下

1、本地发送ajax请求时,调试输出:XMLHttpRequest cannot load file:///E:/webs/extJS/ext-3.3.0/examples/csdn/combobox.txt?_dc=1414738973999.Cross origin requests are only supported for protocol schemes: http, data,chrome-extension, https, chrome-extension-resource.错误

网上百度了很多方法,基本上都是往目标地址后面添加命令,这里分为两个版本的配置方法,谷歌浏览器49版以前的,鼠标移入谷歌浏览器快捷图标(不是快捷图标的需要自己创建一个快捷图标)--右键--属性--快捷方式,在目标地址后面加入命令--disable-web-security,注意:一定要打一个空格再粘贴进去;谷歌浏览器49版以后的,鼠标移入谷歌浏览器快捷图标(不是快捷图标的需要自己创建一个快捷图标,然后在电脑上新建一个目录,例如:C:\MyChromeDevUserData)--右键--属性--快捷方式,在目标地址后面加入命令--disable-web-security --user-data-dir=C:\MyChromeDevUserData,注意:一定要打一个空格再粘贴进去。

2、现在,谷歌浏览器已经可以进行跨域操作了,可是当我进行调试的时候,又来新的问题了,调试输出:Request header field X-Requested-With is not allowed by Ac错误,由于我的服务器脚本是PHP的,所以只需要在PHP脚本中指定以下头部:

header('Access-Control-Allow-Origin: *');

header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");

header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE');

即可。

再次刷新调试没有任何错误,并且可以成功发送短信

注:前端post采用的是mui的ajax,没有使用jquery的ajax,个人表示不怎么喜欢JQ,宁愿写原生的js,后端采用php,如果有朋友遇到类似问题,可以参考一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值