2011-12-09 57 views
3

我打電話給其他人創建的REST API。它支持JSONP以促進跨域訪問。JSON-P回調函數應該接受一個字符串嗎?

我回來從服務的響應是這樣的:

mycallback('{"token": "123456789"}'); 

注意單引號包裝JSON數據;以字符串而不是原始對象的形式傳遞它。 JQuery可以處理這個,但其他庫似乎期待一個原始對象。

mycallback({"token": "123456789"}); 

原始對象的參數,使我更有意義,因爲它避免瞭解析JSON數據,但我想知道肯定詢問API的維護者做出調整前:

哪一個最正確?

回答

3

傳遞一個JavaScript文字(第二個)爲shown here更正確,因爲它避免了將字符串反序列化回javascript對象。

0

將字符串傳遞顯然是一件壞事 - 你有兩個選擇(#1是首選):

  1. 問JSONP服務的開發商送的不是字符串適當JSONP
  2. 讓你回調函數聰明,所以它使用類似payload = JSON.parse(payload);的情況下​​是一個字符串。
+0

我正在使用內置的JSON-P處理在我使用的框架中,因此#2實際上並不可行。 – Soviut

相關問題