2013-04-02 84 views
1

我想從我的WebAPI使用JQuery $ .ajax()獲取數據。這裏是我的代碼:

$.ajax({ 
       type: "GET", 
       url: "http://localhost:62412/api/RandomData?startTime=2013-02-23%2005%3A00%3A00&callback=?",         
       dataType: "jsonp",     
       success: function (data) { 
        alert("success"); 
       }, 
       error: function (errorData) {     
       alert("fail"); 
       }// When Service call fails 
      }); 

我可以看到WebAPI正常工作併成功返回數據。但在客戶端,我總是得到'失敗'警報。我可以看到螢火蟲中的數據。

任何人都可以讓我知道爲什麼當響應狀態是'200'時'error'函數被調用嗎?

+0

你可以發佈服務器返回的數據嗎? – david

+0

[{「ID」:「002940」,「姓名」:「威廉」,「緯度」:31.56,「經度」: - 87.0},{「ID」:「002940」,「姓名」:「布賴恩」 「緯度」:31.56,「經度」: - 86.98}]這是我從服務器獲得的JSON。 – usp

+0

請參閱http://stackoverflow.com/questions/5943630/basic-example-of-using-ajax-with-jsonp – Grilse

回答

1

返回的代碼是不是JSONP。這是簡單的JSON。

在jsonp中,服務器必須以作爲回調參數提供的名稱返回JSON對象作爲函數的參數。

在您的配置,如果被髮送到服務器的回調參數爲「示例」,服務器必須與

example(json code here) 

並不僅僅是

json code here 

象現在這樣回答。

使用$.ajax函數,您不必在客戶端指定回調函數名稱,但服務器必須遵守它。

+0

我必須使用JSONP,因爲我得到「訪問控制允許來源不允許原產地點null」。錯誤。 – usp

+0

我認爲我錯誤的原因是我沒有'主持'網頁。我剛剛用瀏覽器打開。所以,JSON工作正常。謝謝您的幫助。 – usp

+0

不客氣 – david

1

如果下載的數據不是有效的json數據並且可以正確解析,$ .ajax調用可能會失敗。

更改錯誤回調並檢查錯誤消息:

error: function (data, msg) {     
      console.log(msg) 
      } 
+0

是的,它是'parseerror'。但我檢查了我的JSON,它是有效的。還有什麼可以導致這個錯誤? – usp

+0

您的回調函數未被服務器調用。接收到的有效負載應該與callback_function([JSON_DATA])類似。 檢查此鏈接(http://en.wikipedia.org/wiki/JSONP) – Bechir

相關問題