XMLHTTPRequest를 사용하여 변수를 전달하려면 어떻게 해야 합니까?
변수를 서버로 전송하려면 어떻게 해야 합니까?XMLHTTPRequest
의 URL 끝에 추가해도 될까요?GET
요구, 예를 들어?variable1=?variable2=
기타 등등?
어느 정도:
XMLHttpRequest("GET", "blahblah.psp?variable1=?" + var1 + "?variable2=" + var2, true)
GET을 사용하여 변수를 서버에 전달하는 경우 yes가 됩니다.올바르게 이스케이프(urlencode)해야 합니다.
변수를 표시하지 않으려면 POST를 사용할 수도 있습니다.
완전한 샘플은 다음과 같습니다.
var url = "bla.php";
var params = "somevariable=somevalue&anothervariable=anothervalue";
var http = new XMLHttpRequest();
http.open("GET", url+"?"+params, true);
http.onreadystatechange = function()
{
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(null);
이를 테스트하려면 (PHP를 사용하여)var_dump $_GET
검색 결과를 확인할 수 있습니다.
간단한 상황에서는 쿼리 문자열을 수동으로 포맷하는 것이 좋습니다.그러나 매개 변수가 많으면 지루해질 수 있습니다.
쿼리 포맷 작성을 처리하는 간단한 유틸리티 함수를 작성할 수 있습니다.
function formatParams( params ){
return "?" + Object
.keys(params)
.map(function(key){
return key+"="+encodeURIComponent(params[key])
})
.join("&")
}
이 방법으로 요청을 작성할 수 있습니다.
var endpoint = "https://api.example.com/endpoint"
var params = {
a: 1,
b: 2,
c: 3
}
var url = endpoint + formatParams(params)
//=> "https://api.example.com/endpoint?a=1&b=2&c=3"
URL을 조작하기 위해서 사용할 수 있는 유틸리티 기능은 많이 있습니다.프로젝트에 JQuery가 있는 경우 http://api.jquery.com/jquery.param/을 사용해 보십시오.
위의 예제 기능과 비슷하지만 중첩된 개체 및 배열의 반복적인 직렬화를 처리합니다.
문자열 연결에 알레르기가 있어 IE 호환성이 필요하지 않은 경우 및 을 사용할 수 있습니다.
const target = new URL('https://example.com/endpoint');
const params = new URLSearchParams();
params.set('var1', 'foo');
params.set('var2', 'bar');
target.search = params.toString();
console.log(target);
또는 전체 객체의 매개 변수 값을 변환하려면:
const paramsObject = {
var1: 'foo',
var2: 'bar'
};
const target = new URL('https://example.com/endpoint');
target.search = new URLSearchParams(paramsObject).toString();
console.log(target);
GET 요청에서 변수를 전달하기 위한 올바른 형식은 다음과 같습니다.
?variable1=value1&variable2=value2&variable3=value3...
^ ---notice &--- ^
하지만 본질적으로는 당신이 옳은 생각을 가지고 있어요.
올바른 방법은 다음과 같습니다.
xmlhttp.open("GET","getuser.php?fname="+abc ,true);
네, 이것이 GET 요청으로 수행하는 올바른 방법입니다.
단, 복수의 쿼리 문자열 파라미터는 &로 구분해야 합니다.
예: ?value1=value1&value2=value2
어때요?
function callHttpService(url, params){
// Assume params contains key/value request params
let queryStrings = '';
for(let key in params){
queryStrings += `${key}=${params[key]}&`
}
const fullUrl = `${url}?queryStrings`
//make http request with fullUrl
}
언급URL : https://stackoverflow.com/questions/8064691/how-do-i-pass-along-variables-with-xmlhttprequest
'programing' 카테고리의 다른 글
jQuery $.map의 각도 등가? (0) | 2023.03.12 |
---|---|
javax.xml.bind의 ClassNotFoundException.Java 9로 전환할 때 스프링 부트를 사용하는 JAXBException (0) | 2023.03.12 |
워드프레스.우코머스카트에 추가하기 전에 작업 후크 (0) | 2023.03.12 |
디버거에서 IntelliJ Idea의 JSON 개체 가져오기 (0) | 2023.03.12 |
INSERT 문에서 "여기에 열이 허용되지 않습니다" 오류가 발생했습니다. (0) | 2023.03.12 |