1

Web サービスからのデータを認証する認証 Web サイトを開発しています。私の Web サイトはローカルで実行されており、Web サービスは別のドメイン ex: test.abc.com で実行されています。認証が成功した場合は、応答を Cookie に保存します。

データが Cookie で利用可能で、有効期限が切れていない場合、2 番目の呼び出しでは認証を要求しませんが、バックエンドからユーザーを検証する必要があります。そのために、以下のコードを使用しています。

  $.ajax({
    url:"https://test.abc.com/test/DummyTest",              
    method:"GET",
    dataType:"json",
    beforeSend: function(xhr){
        xhr.withCredentials = true;
    },
    success:function(data){
        alert(Success);
    },
    error:function(xhr,err){
    alert("Error");
 });

jquery1.6を使用しています

ブラウザーのオプションを確認しましたが、Cookie はローカルホストの IP (160.225.230.50) アドレスと共に保存されています。しかし、Web サービスは別のドメイン (abc.com) にあります。2回目のアクセスでErrorレスポンスが返ってきました。

これについて私を助けてください。

4

1 に答える 1

2

For this to work your auth page should send Access-Control-Allow-Origin and Access-Control-Allow-Credentials headers.

When using Access-Control-Allow-Credentials: true you cannot set Access-Control-Allow-Origin to wildcard, but need to specify origin: Access-Control-Allow-Origin: https://abc.com

Also, there is a simpler way to set xhr fields:

$.ajax({
  xhrFields: {
    withCredentials: true
  },
  type: 'POST',
  url: ...
});
于 2012-09-26T08:18:54.550 に答える