【问题标题】:How to support both json and jsonp responses in node.js + Express?如何在 node.js + Express 中同时支持 json 和 jsonp 响应?
【发布时间】:2014-10-05 13:10:38
【问题描述】:

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

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

那么,我的问题是,最好的方法是什么?

可能,有模式,还是活生生的例子?

谢谢!

【问题讨论】:

    标签: json node.js rest express jsonp


    【解决方案1】:

    官方支持的方法如下--

    首先,设置你的 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

    这不会: 获取 /myapi/v1/用户

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

    【讨论】:

    • 但是 POST 或 DELETE 请求呢?据我所知,它不适用于 JSONP。
    • 它应该以完全相同的方式工作。就 express 而言,GET/POST/DELETE/etc 都是一样的,只是发送方式不同。至于发出这些请求,您必须使用方法覆盖。 github.com/expressjs/method-override
    • 很好的答案!我疯狂地寻找它。
    • 显然jsonp中没有post或delete请求。
    猜你喜欢
    • 2014-05-07
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 2015-12-06
    • 2013-10-09
    • 2014-02-10
    • 2015-08-29
    相关资源
    最近更新 更多