Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax JSON-P回调函数应该接受字符串吗?_Ajax_Json_Rest_Callback_Jsonp - Fatal编程技术网

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

Ajax JSON-P回调函数应该接受字符串吗?,ajax,json,rest,callback,jsonp,Ajax,Json,Rest,Callback,Jsonp,我正在调用其他人创建的RESTAPI。它支持JSONP以促进跨域访问 我从服务返回的响应如下所示: mycallback('{"token": "123456789"}'); 注意包装JSON数据的单引号;将其作为字符串而不是原始对象传递。JQuery可以处理这个问题,但其他库似乎希望使用原始对象 mycallback({"token": "123456789"}); raw object参数对我来说更有意义,因为它避免了解析JSON数据的需要,但在要求API的维护人员进行调整之前,我想确定

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

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

mycallback('{"token": "123456789"}');
注意包装JSON数据的单引号;将其作为字符串而不是原始对象传递。JQuery可以处理这个问题,但其他库似乎希望使用原始对象

mycallback({"token": "123456789"});
raw object参数对我来说更有意义,因为它避免了解析JSON数据的需要,但在要求API的维护人员进行调整之前,我想确定一下:


哪个最正确?

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

传递字符串显然是件坏事-您有两个选择(#1优先):

  • 要求JSONP服务的开发人员发送正确的JSONP,而不是字符串
  • 使回调函数智能化,以便它使用类似于
    payload=JSON.parse(payload)的东西有效载荷
    是字符串,则为code>

  • 我在使用的框架中使用内置的JSON-P处理,因此#2实际上不可能/不实用。