重定向时更改浏览器标头

时间:2012-03-23 04:47:06

标签: http http-headers

我有以下情况:

浏览器使用Json有效负载向我的服务器端点执行POST

我的服务器处理数据,然后重定向到新位置

浏览器执行重定向,但它使用与原始帖子相同的标题来执行此操作,这意味着它到达我的endpint,以便我的端点 认为这是一个json请求。

- >我希望重定向作为标准的text / html请求到达我的服务器。

是否可以控制重定向使用的标头,以便Get请求到达带有text / html Accept标头?

以下是来自提琴手的一些片段,以突出我所说的内容:

初始POST,json有效负载:

POST /App/Client/Index HTTP/1.1
Accept: application/json, text/plain, */*
X-Requested-With: XMLHttpRequest

回应:

<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="%2App%2fClient%2f%2fSingleEntity%3fentityId%3df859a6ca-dbcf-49cf-8de0-3888b7011815">here</a>.</h2>
</body></html>

来自重定向的子请求GET请求:

GET /App/Client/SingleEntity?entityId=f859a6ca-dbcf-49cf-8de0-3888b7011815 HTTP/1.1
Accept: application/json, text/plain, */*
X-Requested-With: XMLHttpRequest

1 个答案:

答案 0 :(得分:0)

我有类似的要求。我的解决方案是不发送重定向,而是使用以下JSON发送“200 OK”:

{"url": "http://example.com/redirect/to/some/resource"}

客户端使用了URL并通过Javascript重定向,即location.href = data.url。它可能不是您正在寻找的答案,但它解决了您的问题......

另请参阅:How to manage a redirect request after a jQuery Ajax call