当我试图通过Chrome的ajax请求访问API时,我收到了以下响应:
"加载http://localhost:1880/api_resource失败:对预试请求的响应没有通过权限改造检查:请求的资源上没有'Access-Control-允许-起源'标头。因此,原产地http://localhost:3000不允许进入。"
从消息中可以看到,客户端和API都在本地运行。
据我所知,这种情况与CORS跨来源请求有关。我看到在堆栈溢出上有类似的问题,但是从这些答案中,我不明白这个消息告诉我什么,它来自哪里。
具体来说,我理解响应标头“访问-控制-允许-起源”必须设置(通常为“*”),以允许从不同的域访问应用编程接口,并在其上提供应用编程接口。但是消息似乎与请求有关,而不是响应,据我所知,没有请求到达过应用编程接口。
什么是飞行前请求,它是如何失败的?
在我的情况下,问题是我的网站地址,我调用所有的api从同一台服务器,但我得到了这个错误。
我的网站地址是sateh.ir所以im我ajax请求我设置网址:http://sateh.ir/api/...
得到这个错误和工作了几个小时后,我得到了我必须设置ajax网址:http://www.sateh.ir/api/...
我不知道为什么我的网站不能理解,如果我不放“www”,我是从同一台服务器调用api的,但这是我的问题。
据我现在了解,现代浏览器将在实际的跨源请求之前发出“飞行前”请求。此飞行前请求使用“选项”HTTP动词以及CORS标头访问控制请求方法
和访问控制请求标头
,它希望在标头中看到有效的访问控制允许来源
响应,表明服务器理解CORS协议并将允许实际(GET/POST/PUT)请求。
消息“对飞行前请求的响应未通过访问控制检查”表示浏览器在选项响应中未看到有效的“访问控制允许原点”标题。
在我的例子中,这是因为服务器(实现RESTAPI)被设置为正确响应PUT和POST请求,而不是使用CORS头响应OPTIONS请求。
选项https://dev-01-api-apptracker2/管理员401(未经授权) 从源https://dev-01-web-apptracker2在'https://dev-01-api-apptracker2/Admin'访问XMLHttpRequest'已被CORS策略阻止:对起飞前请求的响应不通过权限改造检查:请求的资源上不存在'Access-Control-允许-Origin'标
我正在用Codeigniter 4制作一个反应应用程序的api。在邮递员中一切正常,但当我用axios提出请求(也尝试获取)时,它会出现CORS错误 CORS策略阻止从http://localhost:8080/testposthttp://localhost:3000访问XMLHttpRequest:对预试请求的响应不通过权限改造检查:请求的资源上不存在访问控制允许起源标头。 我尝试将标题添加到
我在chrome上遇到了以下问题: 访问“http://*****/places?holiday_type=resort”获取信息 我的代码是: }
无法加载XMLHttpRequesthttp://xxx.xxx.对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“access control Allow Origin”标头。因此,不允许访问源“null”。响应的HTTP状态代码为500。 我试图用ajax发送一个xml肥皂,但给了我那个错误。我尝试了很多选项,但似乎都不起作用,这是代码: 我做错了什么?我发送了一个POST操作,但它将
我使用nodejs服务器、express框架和fetch库将请求发送到另一个位于不同域的服务器。对于我的一个endpoint,请考虑(localhost:8080/login),当用户单击登录按钮时,我正在呈现ejs文件,我正在向另一个域中的不同服务器(https://otherserver.com/login)发送获取请求。我无法发送此请求。我收到此错误: 飞行前请求的响应未通过访问控制检查:请
我正在尝试使用Netlify Lambda函数创建一个APIendpoint。代码在my local中工作得很好,但总是返回 我试图在代码中处理和,但似乎不起作用。下面是我的代码: 我尝试从React应用程序调用它,使用,如下所示: 我注意到这个错误出现在我的函数调用中 什么原因导致错误,如何解决?