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

Posted

技术标签:

【中文标题】在 Express JS 和 NodeJS 中为 jsonp 回调函数添加参数【英文标题】:add paramters to jsonp callback function in ExpressJS and NodeJS 【发布时间】:2016-04-03 03:37:47 【问题描述】:

我正在使用$.ajax 向 ExpressJS 处理程序发出 jsonp 请求,该处理程序返回:

res.jsonp(status: "200", message: "Finished")

这很好用。

我希望使用这些参数调用 JQuery ajax 成功函数中的回调函数:

callback(status, message)

但如您所见,我可以返回来自 ExpressJS 的 JSON 数据

附:在JQuery成功函数中检查状态是正确的方式,即:

$.ajax(
   ///.....
   success: function(resp)
      if(resp && resp.status === '200')
         // success
      
      else // error
      
   
)

【问题讨论】:

【参考方案1】:

    来自 Express 文档: http://expressjs.com/en/api.html#res.jsonp 最好使用res.status(200).jsonp( message : "Finished" )。 默认情况下,JSONP 回调名称只是 callback。用jsonp callback name 设置覆盖它。

    成功回调原型为Function( Anything data, String textStatus, jqXHR jqXHR )。 因此,要检查响应状态,您可以执行以下操作:

    $.ajax(
        // ...
        success : function(data, status, xhr) 
            if (xhr.status === 200) 
                // ...
            
        
    );

【讨论】:

以上是关于在 Express JS 和 NodeJS 中为 jsonp 回调函数添加参数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MongoDB 中为 NodeJS Express 应用程序存储站点配置?

在 express.js 中为 node.js 使用 jsonp

在 nodeJs 和 express 项目的其他文件 .js 中调用 require 是不可能的

求助:关于nodejs使用express,报错:模块缺失

在 Express JS 中为 Ajax 设置 REST 路由,仅用于 Backbone

nodejs教程 安装express及配置app.js文件的详细步骤