JSON-P回调函数应该接受一个字符串吗?

3

我正在调用别人创建的REST API,它支持JSONP来促进跨域访问。

我从服务端收到的响应如下:

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

注意单引号包裹JSON数据;传递字符串而不是原始对象。JQuery可以处理此操作,但其他库似乎期望一个原始对象。

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

对我来说,原始对象参数更有意义,因为它避免了解析JSON数据的需要,但在请求API维护者做出调整之前,我想确定哪个是最正确的:

哪一个是最正确的?

2个回答

3
将JavaScript字面量(第二个)作为这里所示更正确,因为它避免了将字符串反序列化回JavaScript对象。

0

传递字符串显然是不好的 - 你有两个选择(首选#1):

  1. 要求JSONP服务的开发人员发送正确的JSONp而不是字符串
  2. 使您的回调函数变得智能,以便在payload是字符串的情况下使用类似payload = JSON.parse(payload);的东西。

我正在使用框架中内置的JSON-P处理,所以#2并不是真正可行/实用的。 - Soviut

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接