2017-03-08 1 views
1

XMLHttpRequest와 함께 전송 된 매개 변수를 확인하는 데 관심이 있습니다.XMLHttpRequest 응답에서 params를 가져 오는 방법이 있습니까?

예를 들어, param 'option = 1'을 사용하여 POST 신청서를 보낸 경우 응답에서 해당 신청서를 검색 할 수 있습니까?

방법과 속성을 확인했지만 얻는 방법을 찾지 못했습니다.

+0

아니요, 응답은 응답이 아니라 요청입니다. 그러나 전송 한 매개 변수를 사소한 것으로 기억하고 응답과 함께 체커에게 전달할 수 있어야합니다. – Bergi

+0

더 많은 컨텍스트를 제공해야합니다. XMLHttpRequest는 클라이언트 측에 있으며 서버 측에서 요청을 받기 위해 무엇을 사용합니까? 그런데 응답이 아니라 요청에서 매개 변수를 확인해야 할 것입니다. – Mosd

+0

요점은 변수에 저장하지 않고 요청에서 보낸 매개 변수를 얻는 것이 었습니다. 어쨌든 답장을 보내 주셔서 감사합니다. – Vers

답변

0

BERGI 그것이했던 매개 변수를 검색 할 수 없습니다 말했듯 응답에 대한 요청과 함께 전송됩니다. 그래서 나는 그 질문을 종결 짓고있다.

도움을 주신 모든 분들께 감사드립니다.

0

화재는 XMLHTTPRequest이며 브라우저의 JS 콘솔 (Chrome/Firefox 용 F12)에서 응답 개체를 검사하십시오.

데이터가 없다고 생각합니다. 적어도 한 번 프로젝트에 대한 XMLHttpRequestopen() 메소드를 변경했습니다. 물론 찾을 수는 없었을 것입니다. 그렇게하면 내 기본 오류 처리기는 사용자에게 오류를 인쇄하거나 오류보고 백엔드로 오류를 보낼 때 원본 URL을 알게됩니다.

거친 코드하는 프로젝트에서 가져온는 INIT-코드 : 당신은 대신 send() 함수에 전달 POST 데이터를이 적응해야

/** 
* Check XMLHttpRequest availability 
*/ 
var ajax = null; 
var proto = null; 
if (window.XMLHttpRequest) { 
    ajax = new XMLHttpRequest(); 
    proto = XMLHttpRequest.prototype; 
} else if (window.ActiveXObject) { 
    try { 
     ajax = new ActiveXObject("Msxml2.XMLHTTP.6.0"); 
     proto = ActiveXObject("Msxml2.XMLHTTP.6.0").prototype; 
    } catch (e) { } 
}  

if (ajax == null) { 
    alert ("Can not create AJAX object. You need a more recent browser!"); 
    return; 
}  

/** 
* Update ajax prototype to store the URL (for better error handling) 
*/ 
try { 
    var origOpen = proto.open; 
    proto.open = function (method, url) { 
     this._url = url; 
     return origOpen.apply (this, arguments); 
    }  
} catch (e) { 
    console.log ("Can not patch XMLHttpRequest to store URL. Console output will omit them..."); 
} 

. 이 방법은 아마도 나쁜 스타일이고 내 JS 스타일은 더 나빠질 수 있습니다.

더 나은 :하지만 당신은 항상 XMLHttpRequest 객체에 저장하지 않고, 콜백 함수에 직접 POST 데이터를 전달할 수 :

var postData = "SomeStuff-Foobar123"; 
var ajax = new XMLHttpRequest(); //add magic for other browsers here 
ajax.open ("POST", "ajax.php", true); 
ajax.onreadystatechange = function() { 
    if (this.readyState != 4 || this.status != 200) { 
     console.log ("Not ready, yet..."); 
     return 0; 
    } 
    //response is in this.responseText 
    //but you can still access the parent objects! 
    console.log ("Done with Code 200. POSTed data: " + postData); 
} 
ajax.send (postData); 
관련 문제