C# 从本地html文件到服务器的JSON请求引发CORS错误:访问XMLHttpRequest at<;URL>;来自原点';空';已被CORS策略阻止
我有一个本地HTML文件,其中包含对服务器的JSON HTTP请求。 虽然请求在IE中工作,但在chrome上失败并引发错误: CORS策略已阻止从源“null”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头 引发错误的XMLHTTP代码是:C# 从本地html文件到服务器的JSON请求引发CORS错误:访问XMLHttpRequest at<;URL>;来自原点';空';已被CORS策略阻止,c#,google-chrome,http,cors,xmlhttprequest,C#,Google Chrome,Http,Cors,Xmlhttprequest,我有一个本地HTML文件,其中包含对服务器的JSON HTTP请求。 虽然请求在IE中工作,但在chrome上失败并引发错误: CORS策略已阻止从源“null”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头 引发错误的XMLHTTP代码是: $.support.cors = true; //upload the questionnaire $.ajax({
$.support.cors = true;
//upload the questionnaire
$.ajax({
url: 'http://SERVERNAME/QuestionnaireExample/METHODNAME',
type: 'GET',
success: function (result) {
// CODE for success
},
error: function (result) {
// CODE for error
}
});
});
网络诊断显示:
一般的
请求标头:
正如我提到的,在IE中,相同的代码在本地文件中工作
$.support.cors = true;
//upload the questionnaire
$.ajax({
url: 'http://SERVERNAME/QuestionnaireExample/METHODNAME',
type: 'GET',
success: function (result) {
// CODE for success
},
error: function (result) {
// CODE for error
}
});
});
浏览器不允许从本地文件执行cors请求。它必须从Web服务器运行。如果打开类似“C:\temp.html”的文件并在其中运行脚本,则会发生此错误。但是,如果从“”打开,则可以允许cors请求,因为接收服务器允许cors请求,并且您在发送ajax请求之前发送了cors请求。我不确定您的行$.support.cors=true;足以为该特定请求启用cors。可能是这一行全局启用了它,但您仍然需要将cors头附加到ajax请求。根本没有办法从本地文件运行cors吗?甚至通过降低Chrome的安全性?在IE中,它可以从本地HTML文件中正常工作。我不是浏览器专家,但很可能不是。我也不建议这样做。在将文件放到internet/intranet上的服务器上之前,建议先设置运行文件的个人Web服务器,然后再对其进行测试。设置这样的服务器最多只需要几分钟。
Provisional headers are shown
Accept: */*
Origin: null
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36
$.support.cors = true;
//upload the questionnaire
$.ajax({
url: 'http://SERVERNAME/QuestionnaireExample/METHODNAME',
type: 'GET',
success: function (result) {
// CODE for success
},
error: function (result) {
// CODE for error
}
});
});