2012-03-23 128 views
1

時,我有以下情況:更改瀏覽器標題重定向

瀏覽器做了POST有一個JSON有效載荷到我的服務器端點

我的服務器處理數據,然後發出一個重定向到新的位置

瀏覽器做了重定向,但它使用與原始帖子相同的頭文件,它意味着它到達我的終端,這樣我的端點 認爲它是一個json請求。

- >我希望重定向到達我的服務器作爲標準的文本/ html請求。

是否有可能控制重定向使用的標題,以便Get請求以text/html Accept頭到達?

以下是小提琴手一些片段來突出我所講的:

初始後,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> 

從該subsequest GET請求重定向:

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

回答

0

我有類似的要求。我的解決辦法是不發送重定向,而是一個「200 OK」具有以下JSON:

{"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