2012-02-27 2 views
1

で動作しますJSON文字列を返すための外部RESTful APIを統合しています。何らかの理由でIE(IE 8でテスト済み)でしか動作しません。フィドラー2を使用して、私はAPIが正しいデータを返すと判断しました。XMLHttpRequestが唯一の私のAJAXは、私は等の要求タイプと引数</p> <p>しかし、私に基づいてJSONを返すために作成したコールバックハンドラとブラウザ間で細かい作業をされたコールの私はXMLHttpRequestオブジェクトを使用していますIE

XMLHttpRequest.readyStateは4ですが、XMLHttpRequest.statusはChrome、Safari、FFの場合にのみ0を返します。ローカルサーバー(テストサーバー)を使用すると、ステータスが常にゼロになるので、ステータスのチェックをバイパスしても、XMLHttpRequest.responseTextの空の文字列が残っていることがあります。

function ajaxRequest(requestType,url) { 

    var xmlhttp; 

    if (window.XMLHttpRequest) { 
     xmlhttp = new XMLHttpRequest(); 
    } else { 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange = function() 
    { 

     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
     { 
      switch (requestType) 
      { 
       case 5: 
        //Home postcode search 
        showAddresses("home", xmlhttp.responseText); 
        break;   
      } 
     } 
    } 
    xmlhttp.open("GET", url, true); 
    xmlhttp.send(); 
} 
+1

あなたのAJAX呼び出しをホストするスクリプトはどこにありますか?リクエストしようとしているURLは何ですか? – robertc

答えて

0

ほとんどのブラウザでこの要求を処理するので、jQueryにアップグレードする必要があります。しかし、実際にすべてのブラウザでXMLHttpRequestを使用する方法を知りたい場合は、次のようなコードがあります:https://github.com/ilinsky/xmlhttprequest/blob/master/XMLHttpRequest.js

または、jQueryの実装を選択してください。

http://api.jquery.com/category/ajax/

は、この情報がお役に立てば幸いです。

0

私の問題は、私が外部のAPIを使用していて、xmlHttpRequestを使用しても同じサーバー上で呼び出しを行うことができるということでした。データコードをサーバーコードに移動し、APIに直接行くのではなく、コールバック処理ページから応答を得ました。

+0

それは本当ではありません。ブラウザとサーバーの両方が[CORS](http://en.wikipedia.org/wiki/Cross-origin_resource_sharing)をサポートしている場合、XHRはリモートサーバーに連絡します。 – hippietrail

関連する問題

 関連する問題