在js和後臺進行數據交互時可能出現跨域的問題。
所謂的跨域是:比如說我的靜態頁面是在域名http://test.xoyo.com下的a.html,但是我的後臺文件是在http://test1.xoyo.com下面的a.php,我需要在將數據在a.html和a.php下進行交互,這樣就涉及到跨域了。
解決跨域的方法我一般採用的是JSONP:
首先,我們在靜態頁面寫入js:
jQuery.getJSON("http://website/test1/index.php?name=name&pwd=pwd&code=check&callback=?",function(object){
alert(object.object);//返回的數據
});
}
其中後面的&callback=?參數必須要帶上的。
其次,在後臺數據輸出時應該這樣:
$result = array('num'=>6);
$jsonData =json_encode($result);
echo $_GET['callback'] . '(' . $jsonData . ');';
其中echo輸出的$_GET['callback'] 是必須加上的。
這樣數據就可以進行交互了。
具體網址可以查看:http://www.ibm.com/developerworks/cn/web/wa-aj-jsonp1/