关于javascript:我们需要创建CORS?

What we need to create CORS?

本问题已经有最佳答案,请猛点这里访问。

我把这两个胸衣搞混了??

我只是向你求助。使用javascript cors的xmlhttpRequest的完整源代码是什么?如何从发送的服务器获取JSON数据。如果我可以使用地址栏访问JSON文件。如何从中获取数据?

这是json文件"data.json"

1
{"JsonProjectIDResult": [{"_capacity": 15,"_description":"Meeting Room","_dev_default_view": 3,"_deviceID": 1,"_deviceName":"MobiTech","_deviceTypeID": 1,"_projectID": 1,"_roomID": 2,"_roomName":"Room2","_room_admin_mail": null}]}

这里是my home.html简单脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
var resultDiv = document.getElementById("results");
var newsURL ="http://10.1.128.106/JsonDohaBackToTemplate/getProjectIDByMAC.svc/mac/10:95:84:11:00:05";
var e;
if (window.XMLHttpRequest) {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    e = new XMLHttpRequest();
} else {
    // code for IE6, IE5
    e = new ActiveXObject("Microsoft.XMLHTTP");
}
e.onreadystatechange = function() {
    var html ="";
    if (e.readyState == 4 && e.status == 200) {
        response = JSON.parse(e.responseText);

        if(typeof(e.responseText)==="string") {
            d = e.responseText;
        } else {
            if (typeof(e.responseXML)==="object") {
                d = e.responseXML;
            };
        }
        var myData = response['JsonProjectIDResult'];
        //Loop
        var html ="
<ul>
"
;
        var counter = 0;
        for(var prop in myData[counter]) {
            if(myData[counter].hasOwnProperty(prop))
            html +="
<li>
"
+ prop +" =" + myData[counter][prop] +"
</li>
"
;
        }
        resultDiv.innerHTML = html;
    }
};
e.open("GET", newsURL, true);
e.send();


使用CORS不需要更改JavaScript。它是通过发送请求的服务器发送的HTTP头来处理的。

也就是说,example.com有希望从example.net中读取的javascript。example.net必须使用cors允许example.com读取该数据。

最基本的是,example.net需要包括:

1
Access-Control-Allow-Origin: http://example.com

在响应头中。

更复杂的情况可能也需要为飞行前选项请求设置这些头段。

更多详细信息可在MDN上找到。