如何在node.js + Express中同时支持json和jsonp响应?

时间:2014-08-12 12:49:54

标签: json node.js rest express jsonp

我有一个REST API服务,写在Node.js + Express上,目前支持JSON格式的响应。

现在,我还需要添加对JSONP响应的支持,所以每个人都可以通过将 alt = JSONP 添加到请求字符串来获取它。

所以,我的问题是,这是最好的方法吗?

可能,有一个模式或生活的例子?

谢谢!

1 个答案:

答案 0 :(得分:6)

官方支持的方法如下 -

首先,设置您的JSONP回调参数名称:

app.set('jsonp callback name', 'callback');

然后,将res.jsonres.send的所有实例更改为res.jsonp。 例如,res.jsonp(500, { error: 'message' })

如果请求中提供了callback参数,则响应将使用提供的函数名称包装为JSONP,但如果不是,则只返回JSON。

之后,返回JSONP: GET / myapi / v1 / users?callback = responseCallback

这不是: GET / myapi / v1 / users

参考http://expressjs.com/4x/api.html#res.jsonp