programing

XMLHTTPRequest를 사용하여 변수를 전달하려면 어떻게 해야 합니까?

kingscode 2023. 3. 12. 12:36
반응형

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

반응형