我有以下情况:
浏览器使用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
答案 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