JSON-P回调函数是否应该接受字符串?

时间:2011-12-09 02:25:05

标签: ajax json rest callback jsonp

我正在调用其他人创建的REST API。它支持JSONP以促进跨域访问。

我从服务中得到的回复如下:

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

注意包装JSON数据的单引号;将其作为字符串而不是原始对象传递。 JQuery可以处理这个问题,但是其他库似乎期待一个原始对象。

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

原始对象参数对我来说更有意义,因为它避免了解析JSON数据的需要,但在要求API的维护者进行调整之前我想知道:

哪个最正确?

2 个答案:

答案 0 :(得分:3)

将javascript文字(第二个)作为shown here传递更正确,因为它避免了将字符串反序列化回javascript对象。

答案 1 :(得分:0)

传递字符串显然是一件坏事 - 你有两个选择(首选#1):

  1. 要求JSONP服务的开发人员发送正确的JSONp而不是字符串
  2. 使您的回调功能更智能,以便在payload = JSON.parse(payload);为字符串的情况下使用payload之类的内容。