为什么我不能使用XMLHttpRequest从本地网络获取JSON文件?

时间:2014-05-15 07:53:01

标签: javascript json web-services

我发现很多人都有类似的问题:

XMLHttpRequest cannot load %3192.168.100.201:8080/history?_=1400139870373. Cross origin requests are only supported for HTTP.

我试图启动浏览器:

--disable-web-security
--allow-file-access-from-files

如何从本地网络上的服务器获取JSON文件?


更新

JS代码:

function getHistory() {
        $.ajax({
            url: '192.168.100.201:8080/history',
            dataType: 'json',
            success: function(data) {
                console.log(data); 
            },
            cache: false
        });
     }

1 个答案:

答案 0 :(得分:3)

  

仅HTTP支持交叉原始请求。

这是因为您在请求中忘记了http://

url: 'http://192.168.100.201:8080/history',
  • 浏览器不知道您想要什么协议。

您还应该从目标服务器端发送一个访问控制标题(阅读Cors [1]):

Access-Control-Allow-Origin: http://<requesting host>

在所有情况下都不是必须的,但是现代浏览器的良好做法和安全功能。

[1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS