javascript - 如何避免跨域请求被阻止?
问题描述
我正在尝试在运行 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-extension, chrome-untrusted, https.
解决方案
看到Origin 'null'
意味着您正在尝试从本地计算机动态加载文件。Chrome 告诉您的同源策略(CORS)不允许这样做。Chrome 对这条规则特别严格。
虽然有办法绕过它,但我真的不推荐它。
您最好的选择是建立一个免费的本地 Web 服务器并从那里运行您的测试代码。
推荐阅读
- github - GitHub 工作流作业超时分钟数被忽略。为什么?
- php - 在网站上找不到 f5_cspm = 1234 cookie 的来源
- r - 绘制计算机卷的层次结构
- c# - 我在设计窗口上遇到错误,错误是“服务器标签格式不正确”
- code-collaborator - 如何在协作者中删除处于检查状态的文件
- python - 我如何获取用户消息提到的 Text_channel?
- flutter - 生成文件上的 Dart 迁移工具错误
- c# - 如何使用 HttpContext 获取 Web 服务中的用户 URL
- c# - 如何根据 UWP 中的屏幕分辨率缩放窗口?
- python - 在python中执行sqlite select语句的命令