EDGE: JSON по XMLHttpRequest

shakhov

Новичок
Доброго дня!

Пробую передать JSON через XMLHttpRequest.
Работает везде, кроме EDGE.
Почему - не понял.

JavaScript:
    var request=new XMLHttpRequest();

    request.onreadystatechange=function(){
      if(request.readyState===4){
        if(request.status===200){
          console.log(request.responseText);
        }else{
          alert('An error occurred during your request: '+request.status+' '+request.statusText);
        }
      }
    }
    json=JSON.stringify({
      login: "login",
      password: "password"
    });
    request.open('POST','selector.php',true);
    request.setRequestHeader("X-Requested-With","XMLHttpRequest");
    request.setRequestHeader('Content-Type','application/json; charset=utf-8');

    request.send(json);
В selector.php:

PHP:
<?php
    $_POST=json_decode(file_get_contents("php://input"),true)?:[];
    print_r($_POST);
?>
В EDGE выдаёт пустой массив.
 
Последнее редактирование:

Squats

Новичок
Ну наверно, надо быть дурачком, используя php://input за место реального $_POST или filter_input.
 

shakhov

Новичок
Так реальный $_POST приходит пустым. print_r($_POST) выводит пустой массив.
 

WMix

герр M:)ller
Партнер клуба
я не знаю тонкости EDGE, но могу предположить, что это просто блокировка CORS или из-за http протокола. проверь консоль.
backend если уж проверять то по простому
PHP:
echo file_get_contents("php://input");
 

shakhov

Новичок
Код рабочий. У меня попутно с ним были ошибки в коде.
Спасибо за помощь!
 
Сверху