【发布时间】:2018-05-28 03:04:15
【问题描述】:
我正在尝试从我的 SPA 向 Flask 后端进行 POST 调用。我能够从邮递员成功拨打电话,但完全相同的电话在 Axios 上失败。正如我所看到的,它们都生成了一些不同的 cURL 命令。有谁知道这是怎么回事?
以下是我的 Axios 调用方式。
export function login(email, password) {
return axios.post('www.app.com/login', {
email, password
})
};
这是在浏览器网络选项卡中生成的 cURL,它没有按预期工作。
curl 'https://www.myapp.com/login' -H 'Host: somesite.com' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0' -H 'Accept: application/json, text/plain, */*' -H 'Accept-Language: en-US,en;q=0.5' --compressed -H 'Referer: http://localhost:3000/' -H 'Content-Type: application/json' -H 'Origin: http://localhost:3000' -H 'Connection: keep-alive' --data '{"email":"me@hello.com","password":"hello"}'
这是 Postman 生成的 cURL,它可以工作。
curl -X POST \
http://www.myapp.com/login \
-H 'cache-control: no-cache' \
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
-H 'postman-token: c85019e0-55ed-9124-9f46-f006b22e4d56' \
-F email=hello@hello.com \
-F password=hello
我可以看到 Postman 调用有一个 -F 选项,这在我的 Axios 调用中不存在。任何帮助表示赞赏。
【问题讨论】:
-
似乎在您的 Postman 请求中,它正在发送表单数据,但对于 axios 请求,它正在发送 JSON 数据。您应该首先检查您的 Flask 后端是否适用于 JSON。
-
是的,我认为你是对的。我一定会检查的。有没有办法通过 axios 发送表单数据?
标签: javascript curl axios