Как отправить XMLHttpRequest - PullRequest
0 голосов
/ 07 февраля 2020

Я хочу отправить запрос в следующем виде:

POST /accounts/211242/followers HTTP/1.1
Host: website.com
User-Agent: <user-agent>
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://website.com
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 0
Connection: close
Cookie: <user-cookie>

Но я не очень разбираюсь в Javascript. Я много пробовал, но все, что я получил, просто ошибка. Может ли кто-нибудь создать для меня код?
Вот что я пробовал:

<html>
<head>
  <title>CSRF Demo</title>
</head>  
<body>
  <script>
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("POST", "https://website.com/accounts/211242/followers");
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
    xmlhttp.withCredentials = true;
    xmlhttp.send(null);
  </script>
</body>
</html>

И после запуска этого кода браузер отправляет запрос:

POST /accounts/211242/followers HTTP/1.1
Host: website.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: null
Connection: close
Cache-Control: max-age=0
Content-Length: 0
Cookie: <user-cookie>

Какой не «X-Requested-With: XMLHttpRequest», поэтому сервер отправляет обратно 400 Bad Request

1 Ответ

0 голосов
/ 07 февраля 2020

Согласно документам , вы должны добавить xmlhttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); после открытия и перед отправкой запроса, чтобы добавить желаемый заголовок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...