2013-10-28 79 views
1

我正在使用以下ajax從服務器接收數據。json:響應數據未顯示在警報中

$.get("http://***/umbraco/Api/SomeApi/SignIn",{apiVersion : 1,email:"[email protected]", password:"mypassword" },function(data) { 
    alert('in'); 
    alert(data); 
}, "jsonp"); 

我可以看到200 OK在檢查元素。我還可以看到回覆文字。但是我無法獲取警報中的數據。以上兩種警報均無效。

編輯

我嘗試了以下AJAX:在

jQuery.ajax({ 
    type: "GET", 
    url: 'http://***/umbraco/Api/SomeApi/SignIn?apiVersion=1&[email protected]&password=mypassword&callback=?', 
    dataType: "json", 
    success: function (results) { 
     alert("Success!"); 
    }, 
    error: function (XMLHttpRequest, textStatus, errorThrown) { 
     alert("error"); 
     alert('XMLHttpRequest '+ XMLHttpRequest); 
     alert('textStatus '+ textStatus); 
     alert('errorThrown '+ errorThrown); 
    } 
}); 

結果:

Status Code: 200 Ok 

但是,

分析錯誤拋出。我怎樣才能解決這個問題?

enter image description here enter image description here

請幫助。

+0

使用'$ .getJSON'而不是'$ .get' .. –

+0

試過了。沒有運氣。返回一個錯誤:Access-Control-Allow-Origin不允許原始http:// localhost。 –

+0

http://en.wikipedia.org/wiki/Same-origin_policy – undefined

回答

0

對於要使用jsonp調用的服務,該服務必須返回實際上是JavaScript代碼的jsonp。

如果是第三方服務,請確保該服務支持jsonp。

+0

我可以看到檢查元素的網絡選項卡中的所有值。但爲什麼解析錯誤?響應頭文件表示content-type:application/json。儘管如此,我仍然無法完成工作。我的代碼有問題嗎? –

+0

@Erma Isabel,從您的問題的評論中,我可以看到您有一次「訪問控制 - 允許來源不允許的來源」錯誤,這意味着該服務位於不同的域中。在這種情況下,你只能使用jsonp,用ajax調用提供回調。爲了達到這個目的,你的服務器必須支持jsonp,它必須返回類似於callback({json data});的東西。你也需要在javascript中定義你的回調函數。所以請確保2件事 - 服務器是否在不同的域中,以及它是否支持jsonp。然後使用jsonp。 – Saranya

+0

我如何知道它支持jsonp? –