有这个要求:
// 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语言后。如果我必须设置状态,在此请求中设置的位置和方式。
感谢。
答案 0 :(得分:1)
因为你明确地将用户重定向到他们在你的锚点href中导航到的网址不同的网址,所以正确的代码应该是302,这是express中的默认代码。
因为您正在编写cookie,您可能不想要将其更改为308,这暗示重定向是永久性的 - 鼓励浏览器缓存响应并可能给您如果用户想要更改其区域设置,则会出现问题。