Получение 400 ошибок в ответе на почтовый запрос - PullRequest
0 голосов
/ 30 апреля 2020

Моя функция запроса:

var cnt=(new Date().getTime());

function requestp(path, data, run)
{
cnt++;

var request = new XMLHttpRequest();
request.open('POST', path+'?'+data+'&cprv='+cnt, true);
request.setRequestHeader('cache-control', 'no-cache, must-revalidate, post-check=0, pre-check=0');
request.setRequestHeader('expires', 'Thu, 19 Nov 1981 08:52:00 GMT');
request.setRequestHeader('pragma', 'no-cache');
request.addEventListener('readystatechange' ,function()
{
if ((request.readyState==4) && (request.status==200))
run( request.responseText);
}
);

request.send(data);

}

path+'?'+data+'&cprv='+cnt строка здесь здесь, в pastebin .

Функция запуска с этими параметрами выдает 400 ответов. Я проверял на наличие символов \n, \r, но ничего. Еще одна строка работает хорошо. Есть идеи что не так?

1 Ответ

0 голосов
/ 30 апреля 2020

Были некоторые ошибки, не относящиеся к http-запросу, и функция запроса, которая редактировалась ранее, имеет ошибку.

В случае пост-запроса, метод open должен получать только путь, и параметры должны быть переданы методу send.

var cnt=(new Date().getTime());

function requestp(path, data, run)
{
cnt++;

var request = new XMLHttpRequest();
request.open('POST', path, true);
request.setRequestHeader('cache-control', 'no-cache, must-revalidate, post-check=0, pre-check=0');
request.setRequestHeader('expires', 'Thu, 19 Nov 1981 08:52:00 GMT');
request.setRequestHeader('pragma', 'no-cache');
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); //perhaps it is necessary 
request.addEventListener('readystatechange' ,function()
{
if ((request.readyState==4) && (request.status==200))
run( request.responseText);
}
);

request.send(data+'&cprv='+cnt);

}
...