2016-10-06 11 views
0

問題があります。getElementsbyTagNameは関数ではありませんXMLHttpRequest

私はXML応答を与えるWebサービスを呼び出すので、XMLHttpRequestを使用しました。 これで、1つのノードに保管されている1つの値にアクセスしたいとします。ここで

はそのために私のコードです:

xmlhttp.onreadystatechange = function() { 
       if (xmlhttp.readyState == 4) { 
        if (xmlhttp.status == 200) { 

         console.log("response : " + xmlhttp.responseXML.getElementsbyTagName("return")[0].childNodes[0].nodeValue); 
         ... 

私のXMLレスポンスは次のように見えるように持っているので、私はreturnノードが存在することを確信していると、それは何かが含まれています

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
     <ns2:carreNombreResponse xmlns:ns2="http://mathsutility.test.com/"> 
     <return>16.0</return> 
     </ns2:carreNombreResponse> 
    </soap:Body> 
</soap:Envelope> 

しかし、問題は私のプログラムがconsole.log行を実行すると、次のようなエラーを返します:

TypeError: xml.getElementsbyTagName is not a function 
    at XMLHttpRequest.xmlhttp.onreadystatechange... 

私はTypescriptと角度2を使用していることを述べましたが(通常は基本的なjs関数を変更するはずはありません)

問題を解決する方法はありますか?

+3

「By」も大文字にする必要があります。 –

+0

xmlhttp.responseXMLを調べましたか?リクエストでヘッダーが正しく設定されていない場合、これはnullになります。 – Eoin

+0

@NiettheDarkAbsolああ私の神それはそれだった。私は少し疲れている:)感謝! –

答えて

0

こんにちはCallisteは、XMLがDOMElementではないために起こっています。 それだけでxmlデータ型である

I・デ・あなたが

jqueryのは、それが呼び出される

この仕事をするために非常に良いものを持っている代わりに使用するDOM関数のXML構文解析機能を使用することをお勧めします

PaseXML https://api.jquery.com/jQuery.parseXML/

+0

ご回答いただきありがとうございます。私はjqueryの外観を持って、それが動作するかどうかを知らせます。しかし、角度でjqueryを使用することをお勧めしますか? –

+0

xmlhttpからDOMオブジェクトを取得できるはずです。 https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseXML – Eoin

+0

実際には、角度エンジンの中に小さなjqueryがあるにもかかわらず、実際のところ、実際のアプリケーションのほとんどは、ほとんどのjqueryベースのスニペットとライブラリ。 そして最も美しい部分は、これはjqueryで作成された角と衝突することなく、余分なconfを必要としません。 –

関連する問題