当用户单击按钮时,我正在尝试向用户发送OTP。
所以我使用了LARAVEL,并将响应返回为JSON
。
当我单击该按钮时,我在控制台中看到以下错误:
GET http://domain/resend 500 (内部服务器错误)
SyntaxError:位置0处的意外标记
我读了一个关于同一主题的问题,答案是我必须添加CSRF令牌,我确实添加了它,但仍然收到错误。
我的js代码:
try {
let resend = await fetch('http://domain/resend',{
method:'GET',
headers:{
'Content-type':'application/json',
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content').value
},
});
let resultre = await resend.json();
return {
resultre
}
}catch (e) {
console.log(e);
}
而我返回的是幼虫的回答:
return response()->json($user->save());
我还是个初学者,所以我的代码可能不好,
谢谢
发布于 2018-07-10 03:01:36
这是与服务器端相关的问题。因为您的服务器输出调试错误代码(可能是HTML格式),所以它不是有效的JSON输出,并且您的Javascript代码无法将其解析为JSON。
这意味着错误可能与通过路由调用的方法有关,其中您有这部分代码:
return response()->json($user->save());
乍一看,您似乎是在尝试对null调用save()方法。您的$user对象是否丢失?尝试从$request获取它。
但是,你仍然需要检查你的日志。您应该在.env文件中将应用程序设置为调试模式。
然后你应该检查日志(如果没有安装monolog,安装它)检查更多的日志在Laravel这里:https://laravel.com/docs/5.6/logging
也许将你的响应包装在try catch代码块中会很有帮助,看看错误抛出了什么:
try{
return response()->json($user->save());
}catch(\Exception $e){
return response()->json(['error'=>$e->getMessage()]);
}
https://stackoverflow.com/questions/51252122
复制相似问题