Я пытаюсь сделать асинхронный запрос методом POST от веб-работника, используемого в моем расширении. Дело в том, что у меня это не работает.
На стороне сервера у меня есть PHP-скрипт для прослушивания данных в переменной $ _POST. Хотя я могу установить соединение с сервером и даже передать некоторые данные в URL (GET), $ _POST всегда пуст.
Вот последний код, который я использую в веб-работнике:
var serviceUrl = "http://localhost/pfm/service/index.php";
var invocation = new XMLHttpRequest();
if(invocation){
invocation.open('POST', serviceUrl, true);
invocation.setRequestHeader('X-PINGOTHER', 'pingpong');
invocation.setRequestHeader('Content-Type', 'text/plain');
invocation.onreadystatechange = function(){processResponse(invocation);};
invocation.send("action=init");
}
(заимствовано с веб-сайта MDN, когда я понял, что проблема в той же политике происхождения)
До этого я использовал довольно очевидное и смехотворно простое:
var serviceUrl = "http://localhost/pfm/service/index.php";
var xhr = new XMLHttpRequest();
xhr.open("POST", serviceUrl, true);
xhr.onreadystatechange = function(){processResponse(receiptStoreRequest);};
xhr.send("action=init");
В этом случае запрос также прошел, но $ _POST все еще был пуст.
Возможно ли, что POST-запросы не разрешены для веб-работников?
Сейчас все тестируется на локальном хосте.