JSONP是否需要使用JavaScript?

时间:2017-05-04 14:00:20

标签: javascript perl websocket jsonp

我对JSONP的细节含糊不清,JSONP看起来根本不是一个合适的规范。

我正在编写一个Perl客户端,以便与具有WebSocket JSONP API的服务器进行通信。

我是否需要使用JavaScript来指定JSONP回调,还是可以用其他方式完成?

2 个答案:

答案 0 :(得分:2)

我认为,如果API遵循“常见的JSONP合同”,则可以在客户端使用不带JavaScript的JSONP API。后者意味着服务器应该返回包含在函数调用中的JSON数据,即服务器响应(正文)看起来像jsonpCallback({"key": "value"})

要检索JSON有效负载,您只需要剥离函数包装器:

$server_response =~ s/^\s*\w+\((.*)\);?\s*$/$1/s;   # now it's pure JSON: '{"key": "value"}'

N.B。从理论上讲,函数名称可能需要much harder正则表达式,但如果“常用契约”到位,则在JSONP请求中定义一个简单的回调函数名称。

答案 1 :(得分:1)

是的,你需要使用javascript。 JSONP主要用于制作交叉起源的ajax请求。并且您需要指定一个javascript函数,当您的ajax请求返回时,将调用该函数。