2013-04-21 237 views
1

我要去哪裏錯這個jQuery來解析JSON

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <title>title</title> 
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> 
<script> 
$.get("http://api.angel.co/1/tags/1654/startups?callback=aaa", 
    function(data) { 
    $('body').append("Name: " + data); 
    }, "json"); 

</script> 

    </head> 

<body> 

</body> 
</html> 

的XMLHttpRequest無法加載http://api.angel.co/1/tags/1654/startups?callback=aaa「原產地空沒有被訪問控制允許來源允許」。 Access-Control-Allow-Origin不允許Origin null。

+1

您是否嘗試過使用Chrome或Firefox中的開發人員工具來檢查請求和響應的詳細信息? – Dogoferis 2013-04-21 11:09:53

+0

XMLHttpRequest無法加載http://api.angel.co/1/tags/1654/startups?callback=aaa。 Access-Control-Allow-Origin不允許Origin null。 是我所得到的 – Dasa 2013-04-21 11:18:41

+0

http://stackoverflow.com/questions/3595515/xmlhttprequest-error-origin-null-is-not-allowed-by-access-control-allow-origin?rq=1 – Amelia 2013-04-21 11:26:50

回答

9

嘗試使用jQuery ajax

$.ajax({ 
    url:"http://api.angel.co/1/tags/1654/startups?callback=aaa", 
    type:'GET', 
    dataType:'JSONP', 
    success: function(data){ 
     $('body').append("Name: " + data); 
    } 
}); 
+0

獲取響應名稱:[object Object] – Dasa 2013-04-21 11:27:14

+1

@Dasa是的,它是json對象,可以像訪問它那樣data.total – 2013-04-21 11:42:57

2

地空沒有被允許訪問控制允許來源

你不能打另一個域(不同的是什麼,你都在)使用XMLHttpRequest的,除非你使用JSONP

閱讀更多關於Same_origin_policy

+0

我明白,爲url添加「?callback = aaa」是jsonp – Dasa 2013-04-21 11:17:33

2

您必須某些服務器來運行AJAX上託管否則總是會說

Origin null is not allowed ... 

嘗試使用WAMP/LAMP或使用Apache Tomcat在本地主機上運行您的HTML代碼。它會讓你的域名localhost代替null,並且會修復它。

PS:跨域問題可能仍然存在,具體取決於您正在訪問的服務器是否允許您從其中獲取/發佈數據。

0

下面應該工作:

$.getJSON("http://api.angel.co/1/tags/1654/startups?callback=?", function(data) { 
    $(body).append(data); 
}); 

jQuery將取代?用生成的函數名稱調用內聯函數。

0

在您的ajax調用中包含屬性「dataType」和值「JSONP」。請參考以下示例代碼:

$.ajax({ 
    url: "http://api.angel.co/1/tags/1654/startups?callback=aaa", 
    dataType:'JSONP', 
    success: function(data) { 
     $('body').append("Name: " + data.name); 
    } 
});