0

私はJavascriptingが初めてです。xml レスポーズになる http Web サービス URL があります。URL から応答 xml を取得するにはどうすればよいですか。XMLHttpRequest を使用して以下を使用しようとしましたが、うまくいきませんでした。

function send_with_ajax( the_url ){
    var httpRequest = new XMLHttpRequest();
    //httpRequest.onreadystatechange = function() { alertContents(httpRequest); };  
    httpRequest.open("GET", the_url, true);
    httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    httpRequest.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    httpRequest.setRequestHeader("X-Alt-Referer", "http://www.google.com");
    httpRequest.send();
    httpRequest.onreadystatechange = function() { 
        if (httpRequest.readyState == 4)
        {
            var _tempRecommendations = httpRequest.responseXML;
            window.alert(httpRequest.response)
            window.alert(httpRequest.responseText)
            window.alert(_tempRecommendations)
        }
    };  
};

私は常に取得httpRequest.readyState = 1し、コンソールで応答を評価すると、すべてnullになります。

4

1 に答える 1

0

これによると、Ajax は readyState 1 を通過しません。なぜですか? 、 onreadystatechange イベントを onload イベントに置き換えてみてください:

httpRequest.onload= function() { 
        if (httpRequest.readyState == 4)
        {
            var _tempRecommendations = httpRequest.responseXML;
            window.alert(httpRequest.response)
            window.alert(httpRequest.responseText)
            window.alert(_tempRecommendations)
        }
    };  

うまくいかない場合は、コードを単純化してみてください。たとえば、http ://www.w3schools.com/xml/xml_parser.asp に示すような非常に基本的なリクエストから始めてください。次に、要求ヘッダーの追加を開始して、どの命令がプログラムを壊すかを確認します。ブラウザで直接呼び出して Web サービスをチェックし、問題が自分の側にあることを確認することもできます。

于 2013-05-31T05:38:03.190 に答える