2012-10-23 131 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.