2012-01-10 14 views
3

XMLHttpRequestでHTTPリクエスト(POST/GET)を実行できます。XMLHttpRequestでのHttpsリクエスト

私は「私は常に取得私はこのような何かをしようとしていたが、状態コードが0

var http = new XMLHttpRequest(); 
    var url = "https://www.gmail.com"; 

    http.open("GET", url); 
    http.onreadystatechange = function() {//Call a function when the state changes. 
      if(http.readyState == 4 && http.status == 200) { 
        //alert(http.responseText); 
       print("ok") 
      }else{ 
       print("cannot connect") 
       print("code:" + http.status) 
       print(http.responseText) 
      } 
    } 
    http.send(null); 

ある 「https://www.gmail.com」のようなURLでリクエストを行う方法を求めています接続できません ""コード "0と何も応答なし

ご存じですか?これは、2つの理由で失敗するつもりです

答えて

5

1)URL「https://www.gmail.comは、」実際に「https://mail.google.com/mailにリダイレクトしようとします/ "をクリックすると、ログインページにリダイレクトされます。このリダイレクトはエラーとしてリストされていません

2)もっと重要なことに、XMLHttpRequestsをCORS(http://www.html5rocks.com/en/tutorials/cors/)をサポートしていない限り、別のドメインにすることはできません。 )。 GMailはCORSをサポートしていないため、このリクエストは機能しません。

+0

基本的に私は単一のウェブサイトへのリクエストを行っています.. gmail.comは例です..まだ不可能ですか? – fran

+2

はい、ブラウザの同じ発信元ポリシーのため、標準XHRを使用してあるドメインから別のドメインに要求することはできません。使用できるJSON-PやCORSなどの他のメカニズムもありますが、これらの手法ではサーバーが特定の形式で応答を出力する必要があります。 – monsur

関連する問題