2017-09-04 9 views
-2

ヘッダーフィールドに基づいてリクエストを認証し、HTMLページを返すAPIがあります。ドメインの変更をもたらすHTTPリクエストにヘッダーフィールドを含める

このAPIへのリクエストは、ドメインが(ただ、ハイパーテキストをクリックするように)domain2.comdomain1.comから変更するような、方法で作られる必要があります。

ヘッダーフィールドを追加する必要があるため、<a>Link</a>を使用することはできません。 は、コントロールを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 redirect'をお探しですか? – shaochuancs

+0

@Brad「 somewebsite.com」をクリックすると、「URL」がsomewebsite.comに変更されます。これはドメイン変更の意味です。ヘッダーフィールドを設定するにはajaxが必要です。 –

答えて

0

ヘッダーに資格情報を含むHTTPリクエストを送信し、成功すると「ドメインを変更」すると、302コードとLocationのJSON応答を使用できます。ブラウザの動作はトリガされません。

例応答:

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リクエストが使用されます。 1つはAjax用、もう1つはリダイレクト用です。

+0

ここでリダイレクトしても、ウィンドウのURLは変更されません。これは、リダイレクトされたURLでのリクエストにのみ対応しています。ですから、リダイレクトされたURLからHTMLを取り出して自分のページに挿入することができます。しかし、その後、私はリダイレクトされたページに移動したい。どうすればいいのですか?私はヘッダなしで通常のlocation.assign()を使って行うことはできません。 –

+0

@サムキルバハラン私は間違いをして申し訳ありません。私は別のシナリオと混同しています。答えが更新されました。チェックしてください。 – shaochuancs

+0

どこでこれを扱うことができましたか?私の場合、ブラウザは自動的にリダイレクトされます。そして、私はそのリダイレクトされた呼び出しとこの最初の呼び出しではなく、応答を処理することができます。 –