Express api res.jsonp 返回双重回调

Posted

技术标签:

【中文标题】Express api res.jsonp 返回双重回调【英文标题】:Express api res.jsonp returns double callback 【发布时间】:2013-10-18 07:51:38 【问题描述】:

我有一个 Express 服务器在 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");

为什么有 2 个你好?这是来自 Express 的正确 JSONP 响应吗?它会被客户端正确处理吗?

【问题讨论】:

【参考方案1】:

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

在速递书here的预览章节中有一些关于此的信息。我前几天刚读过。

【讨论】:

谢谢。抱歉坚持,但 JSON_CALLBACK 是一个特殊的回调名称,将数据返回到客户端上的标准成功或错误回调?这对我有用。 从GET请求参数callback=json_callback?您可以将 json_callback 重命名为您喜欢的任何名称——当函数返回时,它将在客户端上调用该函数,就像您对 hello 回调所做的那样。恐怕我对 JSONP 的了解并不多。

以上是关于Express api res.jsonp 返回双重回调的主要内容,如果未能解决你的问题,请参考以下文章

Express响应方法

在 Express JS 和 NodeJS 中为 jsonp 回调函数添加参数

node.js 表达 jsonp 返回 typeof

基于用户类型的有条件返回值的结构化节点 API(express、mongodb、mongoose)

带有 JWT 的 Express API 返回“未经授权:算法无效错误”

当我将 event.preventDefault() 与 fetch api、express 和 node.js 一起使用时,为啥 req.body 返回 null? [复制]