@newaitix

Как делается Preflight запрос?

В сети есть объяснения что при запросе должны быть заголовки
Origin: http://yourdomain.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: X-Custom-Header

И при ответе должны быть заголовки
Access-Control-Allow-Origin: http://yourdomain.com
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: X-Custom-Header

А тело ответа должно быть пустым.

Но во первых Origin не возможно установить он и так будет установлен автоматически. А во вторых даже если так сделать то это будет обычный POST запрос а не Preflight запрос.

<script>
function fu(){
	var invocation = new XMLHttpRequest();
var url = '/ajax_quest.php';
var body = '<\?xml version=\"1.0\"\?><person><name>Arun</name></person>';


  if(invocation)
    {
      invocation.open('OPTIONS', url, true);
      invocation.setRequestHeader('X-PINGOTHER', 'pingpong');
      invocation.setRequestHeader('Content-Type', 'application/xml');
      invocation.onreadystatechange = function(){
      
      };
      invocation.send(body);
    }
}
</script>
<button onclick="fu()">Submit</button>

<?
header('Access-Control-Allow-Origin: https://test.logreel.xyz');
header('Access-Control-Allow-Methods: GET, POST');
header('Access-Control-Allow-Headers: X-Custom-Header');
?>
  • Вопрос задан
  • 10702 просмотра
Решения вопроса 1
REZ1DENT3
@REZ1DENT3
web-developer
Preflight запрос делает браузер автоматически, вам об этом заботиться не нужно.
https://developer.mozilla.org/en-US/docs/Glossary/...

A preflight request is automatically issued by a browser and in normal cases, front-end developers don't need to craft such requests themselves. It appears when request is qualified as "to be preflighted" and omitted for simple requests.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы