0
После первого запроса POST я получаю результат «NeedToken», а затем во втором запросе POST я передаю токен и sessionid в качестве параметров. Вот мой код Javascript:Media wiki second POST по-прежнему возвращает результат NeedToken
function wiki_auth(login, pass, ref){
$.post(ref+'api.php?action=login&lgname=' + login +
'&lgpassword=' + pass + '&format=json', function(data) {
if(data.login.result == 'NeedToken') {
$.post(ref+'api.php?action=login&lgname=' + login +
'&lgpassword=' + pass + '&lgtoken='+data.login.token+'&format=json&sessionid='+data.login.sessionid+'&lgdomain='+ref,
function(data) {
if(!data.error){
if (data.login.result == "Success") {
document.location.href=ref;
} else {
console.log('Result: '+ data.login.result);
}
} else {
console.log('Error: ' + data.error);
}
});
} else {
console.log('Result: ' + data.login.result);
}
if(data.error) {
console.log('Error: ' + data.error);
}
});
}
Я не уверен, что мне нужно передать что-то еще.
Нет никакого различия с вашим кодом. Результат второго поста все равно «NeedToken». Может быть, cookie не обрабатывается должным образом? – Costas
Хм, он должен работать. Куки-файлы должны автоматически обрабатываться браузером (и поскольку это 'HttpOnly', вы никак не можете манипулировать им). Не могли бы вы отредактировать свой вопрос и отправить HTTP-запрос, как показано в сетевом инспекторе devtools? – Bergi
Оказывается, мне пришлось обрабатывать файлы cookie вручную, но также иметь параметры в теле запроса. – Costas