Отправка postData формы с топором ios не работает, но с запросом - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь перейти с запроса на ax ios, так как запрос устарел.
Предположим, что URL 'https://www.example.com 'получает запрос на публикацию с formdata, который содержит информацию для входа в систему, и печатает «Войти в систему» ​​в случае успеха и «Не удалось войти» в противном случае (я не могу поделиться URL-адресом по соображениям конфиденциальности).
У меня есть следующий код , который использует топор ios и печатает «Не удалось войти»:

axios = require('axios')
FormData = require('form-data')
form = new FormData()
form.append('email', 'example@gmail.com')
form.append('password', '1234')
axios({
    method: 'post',
    url: 'https://www.example.com',
    data: form
}).then(function (response) {
    console.log(response['data']); // Prints "Could not log in"
}).catch(function (error) {
    console.log(error);
})

У меня также есть следующий код, который использует запрос и печатает «Вход в систему»:

request = require('request')
request.post({
    url: 'https://www.example.com',
    method: 'POST',
    formData: {
        'email': 'example@gmail.com',
        'password': '1234'
    }
}, function(error, response, body) {
    console.log(body); // Prints "Logged in"
})

Почему операция работает, используя запрос, но не топор ios?

1 Ответ

1 голос
/ 27 марта 2020

Вот вывод кода запроса:

content-length: 288
content-type: multipart/form-data; boundary=--------------------------539399892261259576142530

----------------------------539399892261259576142530
Content-Disposition: form-data; name="email"

example@gmail.com
----------------------------539399892261259576142530
Content-Disposition: form-data; name="password"

1234
----------------------------539399892261259576142530--

А вот вывод кода Ax ios:

content-length: 288",
accept: application/json, text/plain, */*
content-type: application/x-www-form-urlencoded
user-agent: "axios/0.19.2

----------------------------076596858609798080293678
Content-Disposition: form-data; name="email"

example@gmail.com
----------------------------076596858609798080293678
Content-Disposition: form-data; name="password"

1234
----------------------------076596858609798080293678--

Попробуйте добавить эту опцию в Ax ios: headers: {'Content-Type': `multipart/form-data; boundary=${form._boundary}` }

...