4

このコードがFirefox、Chrome、IE10では機能するが、IE9では機能しない理由を知りたい

var ajaxReq = new XMLHttpRequest();
var params = "name="+$('#name').val()
var url = "register.php";

ajaxReq.open("POST", url, true);                               

ajaxReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");    
ajaxReq.setRequestHeader("Content-length",params.length);
ajaxReq.setRequestHeader("Connection", "close"); 

ajaxReq.onreadystatechange = function(){
 if(ajaxReq.readyState == 4 && ajaxReq.status == 200) 
{alert(ajaxReq.response)} //<---this results undefined

 }

PHP ファイル自体に含まれるコードは重要ではありません。

header('Content-Type: text/json');
echo 'response';
exit;
4

1 に答える 1

5

の代わりに.response.responseTextまたはHTTP 応答.responseXMLを参照してください。あなたの場合、に変更すると修正されると思います。alert(ajaxReq.responseText);

responseは XMLHttpRequest オブジェクトのプロパティではないため、JavaScript エンジンがundefinedエラーをスローしています。

前述のドキュメントから:

responseText には、準拠するユーザー エージェントによるプレーン テキストのサーバーの応答が含まれます。

したがって、プレーンテキスト形式であるため、 を含むresponseText以外のプレーンテキストのすべてに使用します。XMLJSON

于 2013-06-03T08:47:48.053 に答える