自從使用google map API之後就很好奇google是如何突破瀏覽器跨網域存取的限制做定址地位或路徑規畫的功能。某天在網路上無意間看到了可能的作法。
雖然瀏覽器禁止跨網域傳送資料,但是卻不禁止跨網域下載圖片、css和javascript。所以利用這特性就能做到。
我們可以使用javascript加入一個script tag,並指向其他網域的網址。但是由於使用javascript,所以該網址回傳必須是json格式資料或是callback。
以下範例:
var oHead = document.getElementById("head")[0];
var oScript = document.createElement("script");
oScript.type = "text/javascript";
oScript.src = "http://www.example.com/GetData.aspx?value=55";
// most browsers oScript.onload = oCallback;
//Callback function // IE 6 & 7 oScript.onreadystatechange =
function() {
if (this.readyState == "complete") {
oCallback();
//Callback function }
}
oHead.appendChild(oScript);