Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从本地html文件到服务器的JSON请求引发CORS错误:访问XMLHttpRequest at<;URL>;来自原点';空';已被CORS策略阻止_C#_Google Chrome_Http_Cors_Xmlhttprequest - Fatal编程技术网

C# 从本地html文件到服务器的JSON请求引发CORS错误:访问XMLHttpRequest at<;URL>;来自原点';空';已被CORS策略阻止

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({

我有一个本地HTML文件,其中包含对服务器的JSON HTTP请求。 虽然请求在IE中工作,但在chrome上失败并引发错误:

CORS策略已阻止从源“null”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头

引发错误的XMLHTTP代码是:

            $.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
                }
            });
        });