如何避免跨源请求被阻止?

问题描述 投票:0回答:2

我正在尝试在运行 php 的服务器上检索文件。网络托管服务。

我以前遇到过这个问题,尝试从本地或服务器访问 html 文件。我的代码是:

<! DOCTYPE html >

<html>
   <head>
       <title>retrieve_activities_json.html</title>
   </head>
   <body>
   
       <p id="demo"></p>
       
       <script>
       var xmlhttp = new XMLHttpRequest();
       xmlhttp.onreadystatechange = function() {
           if( this.readystate == 4 && this.status == 200 ) {
               var activities_obj = JSON.parse(this.responseText);
               document.getElementById('demo').innerHTML = activities_obj[0];
           }
   
       };
   
       xmlhttp.open("GET","activities.json", true);
       xmlhttp.send();
       
       </script>
   </body>

</html>

我的浏览器或虚拟主机服务器是否有任何设置可以帮助我克服此错误消息:

从源“null”访问“file:///D:/Web%20Development%20Tutorials/JavaScript%20Practice/activities.json”处的 XMLHttpRequest 已被 CORS 策略阻止:仅协议方案支持跨源请求: http、数据、chrome、chrome 扩展、chrome 不受信任、https。

javascript ajax
2个回答
4
投票

看到

Origin 'null'
意味着您正在尝试从本地计算机动态加载文件。 Chrome 告诉您的“同源策略”(CORS) 不允许这样做。 Chrome 对这条规则特别严格。 虽然有

方法可以绕过它

,但我真的不推荐它。 您最好的选择是设置一个

免费的本地网络服务器

并从那里运行您的测试代码。


0
投票

google-chrome --disable-web-security --user-data-dir="/tmp/someFolderName"

https://www.dev2qa.com/how-to-fix-error-access-to-script-at-from-origin-null-has-been-blocked-by-cors-policy-cross-origin-请求仅支持协议方案-http-data-chrome-chrome-extension-chrome-u/#google_vignette

https://www.dev2qa.com/how-to-fix-error-access-to-script-at-from-origin-null-has-been-blocked-by-cors-policy-cross-origin-请求仅支持协议方案-http-data-chrome-chrome-extension-chrome-u/

CORS 策略已阻止从源 'null' 访问 ' 处的脚本

© www.soinside.com 2019 - 2024. All rights reserved.