2012-06-05 31 views
4

我要消耗一個Web服務,我得到如何獲得錯誤信息失敗阿賈克斯

$.ajax({ 
    type: 'GET', 
    contentType: 'application/json', 
    dataType: 'JSON-P', 
    //the url shows the correct JSON Data when I copy the URL in my browser 
    url: 'http://url.com', 
    success: function(data){ 
     console.log(data); 
     alert(data); 
    }, 
     error: function(xhr, testStatus, error){console.log("Error occured: "+error+" "+xhr+" "+testStatus)} 
}) 

JSON數據在Firefox中,它調用回來的誤差函數,但我不知道是什麼問題,知道錯誤信息會很好,但我的方法不起作用。 由於事先

編輯:在Chrome中我得到以下錯誤:

Origin null is not allowed by Access-Control-Allow-Origin.

編輯:It's解決了,問題是確實是JSON不工作跨站點,數據不是「JSONP -conform「(它必須設置一個函數(JSON數據...))圍繞JSON數據。這可以通過在年底「_ & JSONP = successCallback更改URL做對不起,打擾你

+2

如果你正在做一個跨起源叫你應該使用JSON-P代替 – fcalderan

+0

JavaScript是區分大小寫的。'鍵入:'GET',' –

+0

可能重複[Xm lHttpRequest錯誤:Origin-null不允許通過Access-Control-Allow-Origin](http://stackoverflow.com/questions/3595515/xmlhttprequest-error-origin-null-is-not-allowed-by-access-control-允許來源) – Bergi

回答

1

我認爲有一個JSON對象語法錯誤。與jsonlint.com檢查JSON對象語法錯誤。

0

你在本地得到這個錯誤

嘗試在服務器上,如果它不能正常工作。? XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin

+0

webservice URL位於遠程服務器上,但是當我使用文件加載文件時,錯誤發生在chrome中:/ /協議 – dan

+0

@dan AJAX僅在託管在某種真實服務器上的網頁內調用時纔有意義,而不是原始文件。 –

+0

所以你的意思是這個不能工作,因爲我在本地測試它? – dan