Node.js expressapi res.jsonp返回双回调

Node.js expressapi res.jsonp返回双回调,node.js,express,jsonp,Node.js,Express,Jsonp,我有一台直通服务器,在8080端口运行,使用此路由 app.get('/api', function (req, res) { res.jsonp('user API is running'); }); 我打开一个浏览器窗口 http://ec2-54-226-27-72.compute-1.amazonaws.com:8080/api?callback=hello 浏览器中的响应为 hello && hello("user API is running"); 为什么有

我有一台直通服务器,在8080端口运行,使用此路由

app.get('/api', function (req, res) {
  res.jsonp('user API is running');
});
我打开一个浏览器窗口

http://ec2-54-226-27-72.compute-1.amazonaws.com:8080/api?callback=hello
浏览器中的响应为

hello && hello("user API is running");

为什么有两个Hello?这是来自Express的正确JSONP响应吗?客户端是否会正确处理它?

是的,这是正确的格式。第一个hello的目的是在尝试调用之前确保客户机上存在函数hello(如果函数不存在,则会发生错误)


在《快车》这本书的预览章节中有一些关于这方面的信息。我前几天刚读过

AlexMA是正确的。“double”回调有效。此外,Angular允许您跳过在客户机中定义回调函数的麻烦


谢谢。很抱歉,仍然存在,但是JSON_回调是一个特殊的回调名称,它将数据返回到客户机上的标准成功或错误回调中吗?这对我有用。从GET请求参数callback=json\u callback?您可以将json_回调重命名为任何您喜欢的名称——它是当函数返回时将在客户端上调用的函数,就像您在hello回调中所做的那样。恐怕我对JSONP的了解还不多。嘿,库尔特,介意点击投票按钮旁边的复选标记吗?这样我就可以得到答案了?:-)是的,谢谢。这只是表明问题已经得到了回答,并给了我一些额外的分数:D。不过,如果有人稍后给出更好的答案,你可以给他们支票。主要的一点是,它有助于将问题列表组织成已回答与未回答。此外,有时好的答案值得投票表决,但真正完全回答了问题——这就是为什么两种选择都存在的原因。