在使用ajax進行前後臺交互的時候,經常會遇到到前臺js取不到服務器響應數據的情況,這時候也許你已經跨域了,最常用也是最有效的解決跨域問題的方法就是使用JsonP。 ajax的getJSON 函數。
具體使用方法說明:
前端js
$.getJSON('test.php?action=test&jsoncallback=?&test_id='+test_id,function(data){
alert(data);
});
用jsoncallback作爲服務器端支持的標準jsonp參數,而每次執行這個方法都會用時間戳生成一個唯一的全局函數名,替換這個“?”,這個細節被封裝到黑盒裏,使用者不必瞭解,可以像普通的ajax請求一樣,用匿名的回調函數作爲最末尾的參數(這是jquery強調的風格);
ajax請求不會更新緩存,用jsoncallback當做一個隨機字符串來解決ajax請求不會更新緩存的問題。
服務器php
function test()
{
……
$testtime= $_GET['jsoncallback'];
echo $testtime.'('.$testtitle.')';
}
如果需要輸出一個數組對象可以使用json處理下,然後前臺進行獲取並處理顯示。
阻止瀏覽器默認的事件(比如<a href=""></a> 默認跳轉等)
e.preventDefault();