2012-10-23 129 views
3

我使用ajax從我的遠程服務器檢索數據時,當我張貼ajax網址直接在瀏覽器的地址欄,我得到的數據,但當我在做Ajax調用該網址JavaScript文件,它顯示error.I粘貼我的代碼在這裏。ajax呼叫沒有迴應

<!DOCTYPE html> 
<html> 
<head> 

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script> 
$.ajax({ 
url:"http://www.appitechture.com/api/index.php?action=getContactDetails&id=96", 
type:'get', 
datatype:'json', 
success:function OnSuccess(data , status){ 
    alert(data); 
    } , 

error: function OnError(request , status , error){ 
     alert('error'); 
     } 
}); 
</script> 

</head> 
<body> 
    <div id="images"></div> 
</body> 
    </html> 

所以請如果任何人知道它的解決方案,請告訴我。

感謝的 普尼特

+1

改變'數據類型:「jsonp'' – Ms01

+1

如果不是同一個域,你需要使用JSONP(JSON與填充)。 jQuery.getJSON可以幫助你。 –

+0

如果我在www.appitechture.com上運行您的代碼,它會顯示請求的數據,但是如果我將它運行到其他地方,比如Bogdan,我會得到一個跨域限制錯誤。所以代碼工作正常。 – Alfa3eta

回答

0

如果它不是相同的域,你需要使用JSONP(JSON與填充)。正如Bogdan Burim所述,這是由於同樣的政策。

jQuery.getJSON可以通過簡單的方式幫助您。它將在您的頁面上包含一個像這樣的腳本標籤。

<script type="text/javascript" 
     src="http://example.com/jsonp?callback=parseResponse"> 
</script> 

您還需要更改遠程服務器的響應,包括回調VAR是這樣的:

parseResponse({"bar": "foo", "foo2": "bar2"}); 

您還可以在easyXDM看看:

easyXDM是一個Javascript庫,使您作爲開發人員可以輕鬆地解決 由相同原產地 策略設置的限制,從而可以製作它很容易溝通和揭示API跨域的界限。

Wikipedia have a nice article about JSONP.