1

いくつかの要件により、jquery ajax を使用してサイトにログインする必要があります..しかし、ログインしようとすると、firebug コンソールは 302 エラーだと言っています。その処理のためにコードを実装しようとしましたが、残念ながら成功しませんでした

これが私が今まで試した私のコードです:

<script type='text/javascript' src='http://code.jquery.com/jquery.js'>
  </script>
  <script type='text/javascript'>


  $(document).ready(function(){


  $.ajax({

  url        : "https://testDomain/login.asp",
  async      : false,
  type       : 'POST',
  data       : {Username:'test',Password:'testPass'},
  success    : function(respText){alert(respText);},

  error      : function (jqXHR, textStatus, errorThrown)
               {
                  console.log(jqXHR.getResponseHeader("Location")); // undefined;
               },

  statusCode: {
               302: function() {
                               alert("page not found");
                             }
              },                
  complete  : function(response) {  
              if(response.status == 302) {  
                  window.alert('page not found');    
              }
   }
       })

  });

  </script>

応答ヘッダーを見ると、次のように表示されます

Date            Wed, 13 Mar 2013 06:43:18 GMT
Location        https://testDomain/pageXXX.asp
Server          Microsoft-IIS/6.0
Set-Cookie      TravAuthV=e;path=/; domain=testDomain.com;
X-Powered-By    ASP.NET

何が欠けていますか.. ?? または、これを処理する他の代替手段はありますか

お時間をいただきありがとうございます..どんな助けでも大歓迎です...

4

1 に答える 1

1

下の行に問題があることを見逃していません。

url        : "https://testDomain/login.asp",

ajaxを使用してSSLリクエストを送信していますが、非SSL URLと同じソースからのSSLリクエストが表示されないため、Javascriptのポリシーに違反しているため、機能していないと思います。

あなたは何ができますか?

Access-Control-Allow-Originサーバーからヘッダーを追加できます。

Access-Control-Allow-Origin: https://testDomain/login.asp

Read More

設定crossDomain : trueを使用してみてください。応答dataType:jsonpがない場合は削除してください。jsonp

$.ajax(
{
    url: 'https://testDomain/login.asp',
    async      : false,
    type       : 'POST',
    data       : {Username:'test',Password:'testPass'},
    success    : function(respText){alert(respText);},
    crossDomain: true,
    dataType: 'jsonp',
    error: function() { alert('Failed!'); },
    beforeSend: function(xhr)
    {
        xhr.setRequestHeader('Authorization',getToken());
    }
});
于 2013-03-13T05:56:35.853 に答える