gpt4 book ai didi

jquery - CORS header 'Access-Control-Allow-Origin' 丢失

转载 作者:行者123 更新时间:2023-11-28 05:14:43 24 4
gpt4 key购买 nike

我从我的 asp.net 表单调用此函数,并在调用 ajax 时在 Firebug 控制台上收到以下错误。

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://anotherdomain/test.json. (Reason: CORS header Access-Control-Allow-Origin missing).

var url= 'http://anotherdomain/test.json';
$.ajax({
url: url,
crossOrigin: true,
type: 'GET',
xhrFields: { withCredentials: true },
accept: 'application/json'
}).done(function (data) {
alert(data);
}).fail(function (xhr, textStatus, error) {
var title, message;
switch (xhr.status) {
case 403:
title = xhr.responseJSON.errorSummary;
message = 'Please login to your server before running the test.';
break;
default:
title = 'Invalid URL or Cross-Origin Request Blocked';
message = 'You must explictly add this site (' + window.location.origin + ') to the list of allowed websites in your server.';
break;
}
});

我已经采取了替代方法,但仍然找不到解决方案。

注意:我没有服务器端(API/URL)更改的服务器权限。

最佳答案

当您尝试访问另一个域的资源,并且该另一个域的 cors 源白名单中没有您的域时,通常会发生这种情况。

要访问域中的资源,必须事先获得该域的“cors origin”策略的授权。

这是一项安全功能,可避免其他域使用您服务器上的资源,或者有助于防止 website spoofing

如果您可以控制两个域服务器,则可以解决此问题:

解决方案1:通过.htaccess

您可以将其写入请求的域文件的.htaccess中:

=> 不推荐允许所有域

    <IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>

=> 推荐仅允许预期域

    <IfModule mod_headers.c>
Header set Access-Control-Allow-Origin 'https://my-domain.example'
</IfModule>

解决方案 2:以正确的方式设置 header

如果您将其设置到所请求文件的响应 header 中,您将允许每个人访问资源:

=> 不推荐允许所有域

Access-Control-Allow-Origin : *

或者

=> 推荐仅允许预期域

Access-Control-Allow-Origin : http://www.my-domain.example

关于jquery - CORS header 'Access-Control-Allow-Origin' 丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41067978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com