저는 자바 스크립트에 익숙하지 않아서 다음 객체 속성이 전송되지 않는 이유를 알아낼 수 없습니다.자바 스크립트 - 객체 속성이 전송되지 않습니다.
다음과 같이 내가 객체를 호출 오전 :
var URL = "TABLE=_Products&COLUMNS=price_Qty,Sale&MATCH=internal_Model&ROWS="+itemnum ;
var ITEM = new get_Database_Info(URL) ;
을하고 get_Database_Info은 다음과 같습니다
function get_Database_Info(PARAMS) {
alert(toString(this));
var URL = document.location.protocol+'//'+document.location.host+'/Catalog/Tools/ajax_Database_Request.php' ;
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if(!xmlhttp){alert('Error: Cannot send XML request.');}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200){
alert(toString(this));
var RESPONSE = xmlhttp.responseText ;
RESPONSE = RESPONSE.replace(/^\s+/, '');
var ARR = RESPONSE.split('||') ;
ARR.pop() ;
for(var i=0; i<ARR.length; i++){
var temparr1 = ARR[i].split('=') ;
var NUM = temparr1[0] ;
this[NUM] = new Array() ;
var temparr2 = temparr1[1].split('/|') ;
temparr2.shift() ;
for(var x=0; x<temparr2.length; x++){
var temparr3 = temparr2[x].split('??') ;
this[NUM][temparr3[0]] = temparr3[1] ;
}
}
}
}
xmlhttp.open("POST", URL, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", PARAMS.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(PARAMS);
}
나는 모든 속성 '이'내에있는 것을 확인했습니다 get_Database_Info의 범위이지만 ITEM으로 다시 전송되지 않습니다. 을 onreadystatechange에 연결된 함수가 this
가 더 이상 생성자에서 생성되는하지만 아마도 전역 객체 또는 xmlhttp
객체에 부착 된 객체에 연결되어 있는지를 실행하지 않을 때
문제는 비동기 요청을 호출하는 것이 었습니다. 나는 그것이 어떻게 모든 포스터에 TYVM 지금 작동하는지 본다. 이상하게도 특정 스크립트가 계속 실행되는 것은 사실이지만 객체가 먼저 해당 속성을 가져 오도록 요구했습니다. –