javascript - 在 Laravel API 中获取 HTTP Post Vue 数据
问题描述
在我的 Laravel API 中,我很难获取从 Vue 发送的 HTTP Post 数据。
我所拥有的非常简单。
axios({
method: 'post',
url: 'http://localhost:8888/api/vue-data',
data: { firstName: "Dally" },
config: { headers: { 'Content-Type': 'multipart/form-data' }}
})
.then(response => {
console.log(response.data)
})
.catch(e => {
this.errors.push(e)
})
然后我的 Laravel 控制器中的功能是这样的......
public function vueData(Request $request)
{
return $request->firstName;
}
我可以在 Chrome 开发工具中看到数据正在发送,但为什么我不能在 Laravel 中获取它?
我已经尝试过 vue-resource 而不是 Axios,但仍然没有运气。
更新#1
因此,当我使用 Axios 时,会出现以下错误。
当我使用 vue-resource 时,我得到了这个。
数据正在传递...
更新#2
如果我将 Laravel 控制器代码更改为此,我会在 VueJS 中得到响应。似乎 Laravel 中的控制器功能没有接收到 Vue 数据,或者我访问错误。
public function vueData(Request $request)
{
return "Testing";
}
解决方案
如果你 POST'ing 到 Laravel,你需要在请求中指定 CSRF 令牌。
添加到您的<head>
:
<meta name="csrf-token" content="{{ csrf_token() }}">
X-CSRF-TOKEN
并为 axios设置默认值:
axios.defaults.headers.common['X-CSRF-TOKEN'] = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
推荐阅读
- javascript - 如何在 useState 挂钩中创建一个字符串数组并在 TypeScript 中更新相同的数组?
- r - 如何在不读取 R 的情况下检查 SAS 数据(.sas7bdat)的行数
- json - 使用正则表达式在 JSON 文本文件中查找重复的数字和逗号
- python - SQL Alchemy 和 mySql DB - 连接太多
- java - 根据 JVM / JMM,给定数组索引处的非同步更新是否会干扰并发设置中相邻索引的值?
- javascript - 为什么我的机器人的 message.js 一直向我发送相同的错误,我该如何解决?
- node.js - mongoDB查询从字符串传递到整数然后求和
- android - 在依赖库GlideModule 之上构建 AppGlideModule
- r - 如何使用整洁的评估为函数提供表达式 purrr::pmap
- javascript - 检查剩余时间/剩余时间的时间间隔