Skip to the content.

자바스크립트 - xhr을 이용한 http 메소드 호출

프록시 툴을 사용하지 못할 때, 서버에 직접 올려 사용한다.



<div id="optdiv">응답에 Allow 헤더가 있으면 출력됨</div>

<script>
var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
	document.getElementById("optdiv").innerHTML=this.getResponseHeader("Allow");
    console.log(this.responseText);
  }
});
xhr.open("OPTIONS", "https://www.xxx.co.kr/");
xhr.setRequestHeader("save-data", "on");
xhr.setRequestHeader("upgrade-insecure-requests", "1");
xhr.setRequestHeader("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36");
xhr.setRequestHeader("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
xhr.setRequestHeader("accept-encoding", "gzip, deflate, br");
xhr.setRequestHeader("accept-language", "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7");
xhr.setRequestHeader("cache-control", "no-cache");
xhr.send(data);
</script>

자바스크립트 - jquery ajax를 이용한 http 메소드 호출



<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div id="optdiv">응답에 Allow 헤더가 있으면 출력됨</div>
<script>
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://xxx.com/",
  "method": "OPTIONS",
  "headers": {
    "upgrade-insecure-requests": "1",
    "accept-language": "en-US,en;q=0.9",
    "cache-control": "no-cache"
  }
}

$.ajax(settings).done(function (response) {
  document.getElementById("optdiv").innerHTML="Allow";
  console.log(response);
});
</script>

대체 코드 - curl



curl -I OPTIONS https://xxx.com/