我在laravel 5.2工作,我添加了vinkla / laravel-pusher在我的网站上做实时聊天应用程序,但我遇到了这个问题: "从webapp返回的JSON无效,但状态代码为200。" 这是我的控制器:
public function authMessageChat(Request $req)
{
$channelName = e($req->input('channel_name'));
$socketId = e($req->input('socket_id'));
$auth = $this->pusher->presence_auth($channelName, $socketId, auth()->user()->id);
return response($auth);
}
这是我的剧本:
var pusher = new Pusher('{{env("PUSHER_KEY")}}', {
authEndpoint: '../auth',
auth: {
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
params: {
id: currentUser.id
}
}
});
var channel = pusher.subscribe('{{$chatChannel}}');
channel.bind('pusher:subscription_error', function(PusherError){
console.log('PusherError' + PusherError);
});
channel.bind('new-message', function(data) {
console.log(data.sender);
)};
Pusher错误:
答案 0 :(得分:0)
看起来你的应用程序正在返回调试条html作为json响应的一部分。
假设你正在使用barryvdh / laravel-debugbar,根据the documentation你可以在运行时关闭调试栏:
Config::set('laravel-debugbar::config.enabled', false);
我假设您需要在发送响应之前添加它,在您用于身份验证端点的控制器方法/路由中(即,您正在调用socket_auth
方法的方法/路由)
答案 1 :(得分:0)
@chrismou感谢您的回答..
你的答案是对的,我们可以用另一种方式实施解决方案。 只需转到.env文件并制作:
APP_DEBUG=false
而不是
APP_DEBUG=true
谢谢