【问题标题】:Res.redirect() vs res. Json(). Server for web and mobileRes.redirect() 与 res.redirect() json()。网络和移动服务器
【发布时间】:2018-08-01 21:05:30
【问题描述】:

我是网络开发的新手。我有一个带有 EJS 模板的 Web 项目。它直接从服务器重定向。使用 res.redirect() 。我想为网络和移动设备创建一个服务器。

问题是...当我使用 res.json() 时,它会将 JSON 数据发送到客户端。可以为两者工作。

两者都可以使用 res.redirect()。网络和移动。

res.rediret 和 res.json 的优缺点

请解释一下。感谢您在 adv 中提出的建议。谢谢。

【问题讨论】:

    标签: android json node.js express ejs


    【解决方案1】:

    res.redirect 发送状态码302(如果未指定)和位置(路由)到浏览器,之后浏览器将请求重定向到指定位置,而res.json 设置Content-Type: application/json 并将数据发送到浏览器。

    重定向通常仅适用于浏览器,但您也可以将其用于移动设备。在这种情况下,您必须处理从服务器接收到的更新 location 重新请求的逻辑,这是不推荐的。

    简而言之,两者都有不同的目的。 res.redirect 将客户端移动到不同的路由,res.json 实际发送数据。

    【讨论】:

    • 感谢您的回复.. Mukesh Sharma 先生。如果我的服务器使用 res.redirect() 并且客户端是 android 移动应用程序会怎样。
    【解决方案2】:

    两者都可以使用 res.redirect()。网络和移动设备。

    如果您的意思是可以使用 res.redirect() 作为 res.json() 的替代方法,那么答案是 NO。 res.redirect() 不是 res.json 的替代品。 res.redirect() 仅将代码和 URL 发送回客户端,响应中没有数据。您仍然需要使用 res.json 或 res.send 来获取您需要的数据。每次使用 res.redirect() 时,您都会向客户端发送响应,告诉他们向另一个位置发出全新的请求。您没有发送任何真实数据。在您使用 res.json 或 res.send 之前,android 应用程序不会获取任何内容。重定向只是告诉客户端从其他地方获取数据。

    以下是服务器使用 res.json 和 res.redirect 时对 android 应用的响应示例

    res.redirect("/user")

    //Response to Android app
    
    302 /user
    

    上面的响应意味着你想要的位于“/user”,所以移动应用需要向

    res.json(用户)

    //Response to Android app
    
        {
            name: "Arpit Yadav",
            phone: 555-555
        }
    

    【讨论】:

      猜你喜欢
      • 2016-06-13
      • 2021-10-07
      • 2016-11-24
      • 2012-10-07
      • 2013-01-29
      • 2012-07-19
      • 2012-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多