JSON HTTP请求在Mac OSX上不起作用[重复]
Posted
技术标签:
【中文标题】JSON HTTP请求在Mac OSX上不起作用[重复]【英文标题】:JSON HTTP Request Not Working on Mac OSX [duplicate] 【发布时间】:2015-09-01 06:42:29 【问题描述】:我一直在 JS 文件中使用 HTTP 请求从本地 JSON 文件中检索信息。它在我的 Firefox 和 Chrome 中的 Windows 计算机上运行良好,但是在 Mac 上运行时,Chrome 调试器会抛出一个错误,提示 Cross origin requests are only supported for HTTP
...
我的HTTP请求代码如下:
var xhr = new XMLHttpRequest();
xhr.open("GET", "sample.json", true);
xhr.onreadystatechange = function()
if (xhr.readyState === 4)
var status = xhr.status;
if ((status >= 200 && status < 300) || status === 305)
var myData = JSON.parse(xhr.responseText);
window.myData = myData;
showAll(myData);
;
xhr.send(null);
有什么想法吗?谢谢
【问题讨论】:
是的,这是一个安全问题。您需要在服务器上运行它,并且此类请求不支持file:///
协议!
@Lau — 当然不是。没有 HTTP 就无法发送 HTTP 标头。
“有什么想法吗?” — 安装 HTTP 服务器。
@Quentin 我的错,读得太快了
【参考方案1】:
是的,这是一个安全问题。您需要在服务器上运行它,并且此类请求不支持 file:///
协议! AJAX 是一种正确的 HTTP 请求响应类型的概念,您不能使用 file:///
协议或使用不同的协议进行事务处理。
【讨论】:
好的,但是为什么我们都使用 Chrome 时它在 Windows 上运行良好? 您使用的浏览器可能很旧。新版 Chrome 和 Firefox 在 Stable 频道上对这类 CORS 的要求非常严格。 Mac 有 100 多个免费的 HTTP 服务器。使用MAMP、AMPPS、XAMPP等:D
会不会是因为,在 Windows 上,我使用 NetBeans 在服务器上运行项目,而在 Mac 上,我们只是将 html 文件直接拖到浏览器中?
你去!是的。默认情况下,NetBeans 在 Apache HTTPD 服务器或 TomCat 服务器上运行! :D
以上是关于JSON HTTP请求在Mac OSX上不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章
非级联类型的菜单栏项目在 Mac OSX 的 Tkinter 上不起作用
Excel VBA Application.Visible = false 在 Mac OSX 上不起作用
JSON.parse() 在 Linux 和 Mac 上不起作用