axios - Axios 以数据二进制格式发送我的纯 JSON
问题描述
当我的 Vuejs 代码尝试发布 JSON 时,后端返回 400 错误。
我通过 chrome 网络捕获找到了线索。
我的 Axios 代码以数据二进制格式发送 JSON。
curl 'http://localhost:5000/api/auth/login' \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json' \
--data-binary '{"username":"admin","password":"ehllow"}'
但我不知道它是如何工作的。
我期待的请求是
curl ... -D '{"username":"admin","password":"ehllow"}'`
不是--data-binary
这是我的 JavaScript 代码。
axios({
method: 'post',
url: '/api/auth/login',
data: {
"username": "admin",
"password": "ehllow"
},
config: {
headers: {
'Content-Type': 'application/json'
}
}
})
.then(function (response) {
//handle success
console.log(response);
})
.catch(function (response) {
//handle error
console.log(response);
});
如何更改我的 axios 代码以将 json 发送到普通数据(-D
)
解决方案
我有同样的问题,答案在这里: axios post request to send form data
简而言之:
let data = new FormData();
data.set("username", "admin");
data.set("password", "ehllow");
axios({
method: 'post',
url: '/api/auth/login',
data: data,
config: {
headers: {
'Content-Type': 'application/json'
}
}
})
让我陷入循环,因为二进制数据的读取方式与表单数据不同。
推荐阅读
- google-cloud-platform - 使用 Google Group 访问 BigQuery 数据集以获取服务帐号
- java - isValid 中抛出的异常 - 休眠验证器
- swift - 减慢 didReceiveMemoryWarning() 中的进程
- spring-integration - 在 Spring 集成中使用 JDBC 入站通道适配器时从选择查询更新最后获取的 Id
- excel - 计算连续几天的总小时数
- javascript - React Navigation:AuthLoading、AuthStack 和 AppStack + Nested StackNavigators
- docker - 使用反向代理后面的 Keycloak 登录后无限循环
- laravel - 如何在 vue 组件的下拉列表中获取选定的值 id
- python - 熊猫,逆向一种热编码
- angular - Angular 7子路由替换父组件