2017-09-04 51 views
-2

我有一個API根據頭字段對請求進行身份驗證,然後返回一個HTML頁面。在HTTP請求中包含應導致域更改的頭字段

這個API請求有一種方式來進行,這樣域將從domain1.comdomain2.com改變(就像點擊超文本)。我不能使用<a>Link</a>因爲我需要添加標題字段。 和ajax無法使用,因爲它不會將控件從domain1.com更改爲domain2.com

像這樣的事情沒有什麼意義可言?

$.ajax({ 
// Use ajax to authenticate 
... 
success : function(path){ 

    // Load the path for domain change 
    location.assign(path);  
    // Even this request should have a header field 
}, 
...  
}) 

我既需要的功能在一個請求(改變域和頭使用) - 如果可能的話,或者至少有2個請求。

任何想法做到這一點?

+0

你是什麼意思,「域名會改變」?這種說法沒有任何意義。改變它在哪裏?你只是在尋找重定向?這和AJAX有什麼關係? – Brad

+0

你在找'302重定向嗎? – shaochuancs

+0

@Brad當我們點擊' somewebsite.com'時,URL會變成somewebsite.com - 這就是我所說的域名變更。我需要ajax來設置標題字段。 –

回答

0

爲了與證書的標題,而「變化領域」成功時,您可以使用與302代碼和Location JSON響應發送HTTP請求 - 只是一個慣例,瀏覽器的行爲就不會被觸發。

實例響應:

HTTP response code: 200 OK 

HTTP response body: 
{ 
    status: 302, 
    location: 'domain2.com/result' 
} 

Ajax代碼將如下所示:

$.ajax({ 
    // Use ajax to authenticate, with credential in HTTP header 
    ... 
    success: function(result){ 
    if (result.status === 302) { 
     window.location = result.location; 
    } 
    }, 
    ...  
}) 

2的HTTP請求將被使用。一個用於Ajax,另一個用於重定向。

+0

此處重定向不會更改窗口URL。它只在重定向的網址上提供我的請求。所以,從重定向的URL中,我可以獲取HTML並將其插入到我的頁面中。但是,那麼我想轉到重定向頁面。我該怎麼做?我不能使用正常的location.assign()沒有標題。 –

+0

@samkirubaharan對不起,我犯了一個錯誤。我很困惑另一種情況。答案已更新。請檢查。 – shaochuancs

+0

你能以這種方式處理嗎?對我而言,瀏覽器會自動重定向。我只能處理重定向呼叫的響應,而不是這個初始呼叫。 –