ajax本地都不能跨域,Ajax请求:本地跨域的问题

本文讲述了在开发过程中遇到的两个问题:1. XMLHttpRequest只能支持特定协议,如http、https等,不能使用文件协议。2. 由于同源策略限制,服务器需要在响应头中设置Access-Control-Allow-Origin来允许跨域请求。通过修改请求URL为http协议并设置服务器响应头,成功解决了这两个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题出现一:

1.Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

释:请求源仅支持http、data、chrome、chrome-extension、https协议。

出现此问题是我将ajax请求的url写成了以文本协议访问,换句话说就是,涉及到 AJAX 操作的页面“不能”使用文件协议访问(文件的方式访问)。

b238085b35114f949117a2696963c9fb.jpg

根据网络上的解决方案:设置主流浏览器的请求参数或是在sublime编辑器中安装插件,我都使用过了,还是没有用。

后来查资料,涉及到了一个同源策略的概念,大概了解一下。

我将请求的url改成以http协议访问,即:xhr.open(‘GET‘,‘http://localhost/Ajax/request-url.php‘)。

然后重新访问,然而。。。。。

出现问题二:

2. No ‘Access-Control-Allow-Origin‘ header is present on the requested resource. Origin ‘null‘ is therefore not allowed access.

释:在请求源里没有允许控制源的请求,即在服务器响应客户端的时候,带上Access-Control-Allow-Origin头信息。

所以,我在请求源的头部加入这行代码:header("Access-Control-Allow-Origin: *");

然后继续访问,duang~ 问题解决啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值