此请求返回的标头状态

时间:2017-11-07 16:02:23

标签: javascript http-status-codes

有这个要求:

 // set a cookie to requested locale
  app.get('setlocale/:locale', function (req, res) {
    res.cookie('locale', req.params.locale); //set language in cookie
     if(req.param.locale === "es"){
     res.redirect('/es'); //i'm redirecting depending on the url
     // this could also redirect to 
     // res.redirect('/es/terms');
     ...
     }
  });

此请求由

之类的选择器列表触发
   <ul class="dropdown-menu" role="menu">
        <li class="uppercase"><a rel="" href="/setlocale/es/">ES</a></li>
        <li class="uppercase"><a rel="" href="/setlocale/de/">DE</a></li>
        <li class="uppercase"><a rel="" href="/setlocale/en/">EN</a></li>
   </ul>

遵循良好做法的正确标题状态代码应该在此请求中返回什么? 。考虑重定向到&#34; http://example.com/es&#34;或&#34; http://example.com/de&#34;或&#34; http://example.com/de/terms&#34;更改cookie语言后。如果我必须设置状态,在此请求中设置的位置和方式。

感谢。

1 个答案:

答案 0 :(得分:1)

因为你明确地将用户重定向到他们在你的锚点href中导航到的网址不同的网址,所以正确的代码应该是302,这是express中的默认代码。

因为您正在编写cookie,您可能想要将其更改为308,这暗示重定向是永久性的 - 鼓励浏览器缓存响应并可能给您如果用户想要更改其区域设置,则会出现问题。