【问题标题】:Should a JSON-P callback function accept a string?JSON-P 回调函数是否应该接受字符串?
【发布时间】:2012-01-16 10:33:04
【问题描述】:

我正在调用其他人创建的 REST API。支持JSONP,方便跨域访问。

我从服务返回的响应如下:

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

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

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

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

哪个最正确?

【问题讨论】:

    标签: ajax json rest callback jsonp


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我在我使用的框架中使用内置的 JSON-P 处理,所以 #2 是不可能的/不实用的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-11
      • 1970-01-01
      相关资源
      最近更新 更多