json - Laravel echo 以表单而不是 JSON 形式发送数据
问题描述
我正在开发一个小应用程序,我在前端使用 NuxtJS,在后端使用 Laravel8 和 LaravelWebsockets 包。
我注意到一些非常奇怪的东西,我无法真正改变。
所以只是为了测试,我在 NuxtJS 中为 Laravel Echo 制作了一个插件,以便在请求中添加一些东西。
export default function ({ $echo, $auth}) {
console.log($echo)
let authData = {
headers: {
// Authorization: 'Bearer 1c2d3a31dd0c5e1933c609ffce1ef4e3'
Authorization: $auth.strategy.token.get(),
// Accept: 'application/json',
"X-Requested-With": 'XMLHttpRequest',
"Content-Type": 'application/json'
},
};
$echo.connector.pusher.config.auth = authData;
$echo.connector._defaultOptions.auth = authData;
$echo.connector.pusher.config.auth.headers['Content-Type'] = 'application/json';
$echo.connector.options.auth = authData;
// $echo.options.auth = authData;
}
现在发生的事情是 Echo 发出这样的请求
这是一个表单数据。因为在我的后端,我通过 API Laravel 将通道设置为身份验证在请求中找不到,channel_name
因为它希望请求具有 JSON 正文。
邮递员发出的带有 JSON 正文的相同请求可以正常工作。
我无法弄清楚强制 echo 发送 JSON 请求而不是表单数据的方法。
另外令人讨厌的是,即使我添加了指示内容类型的标头,它也不会覆盖标头,而是合并它们,所以我最终得到了这样的结果:
Content-Type application/x-www-form-urlencoded, application/json
有没有人对如何解决这个问题有任何想法?我有兴趣在这里了解最佳解决方案。干杯!
解决方案
推荐阅读
- excel - 最佳方法 - 使用具有多个最终用户的 VBA 从 Excel 将记录写入 Oracle
- javascript - 添加到购物车路线 node.js
- javascript - 使用 Jasmine 测试链式承诺而不返回承诺
- django - 无法使用 DRF 在 Django 模板中显示图像
- wpf - 在本地/直接设置控件的(触发)属性时,ControlTemplate/Style 触发器不起作用
- javascript - Vue.js - 在另一个数组中显示嵌套数组的详细信息
- c - 如何反转C中的句子?
- paypal - 什么是 Paypal 的定期付款配置文件 RPSTATE 参数?
- postgresql - 更改 client_min_messages 和 log_min_messages
- python-3.x - 您如何比较包含不可散列对象的字典?