GET 500(内部服务器错误)Laravel/js

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (1371)

我正在尝试在用户单击按钮时向用户发送OTP。

所以我正在使用LARAVEL而且我将回复作为JSON

当我单击按钮时,我在控制台中收到此错误:

获取http://域/重发 500(内部服务器错误) SyntaxError:位于0的JSON中的意外标记<

我读了一个关于同一主题的问题答案说我必须添加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);
    }

我回来了laravel响应:

return response()->json($user->save());
提问于
用户回答回答于

这是与服务器端相关的问题。因为服务器输出调试错误代码(可能是HTML),所以它不是有效的JSON输出,而且Javascript代码不能将其解析为JSON。

这意味着错误可能与通过路由调用的方法有关,在该路由中,你有以下代码:

return response()->json($user->save());

乍一看,你似乎正在尝试调用NULL上的Save()方法。你的$user对象丢失了吗?试着从$请求中得到它。

但是,你仍然需要检查日志,应该在.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()]);
}

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动