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

Posted

技术标签:

【中文标题】GET 500(内部服务器错误)laravel/js【英文标题】:GET 500 (Internal Server Error) laravel/js 【发布时间】:2018-12-17 12:37:10 【问题描述】:

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

所以我正在使用 LARAVEL 并且我将响应返回为 JSON

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

GET http://domain/resend500(内部服务器错误)

SyntaxError: Unexpected token

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

我还是初学者所以我的代码可能不太好,

谢谢

【问题讨论】:

500 是服务器错误。查找 apache/nginx 日志、php 错误日志或 storage/logs/laravel.log apache/nginx没有错误 @FelippeDuarte 说得对,500 表示服务器或后端错误。我认为有几种可能性——你的项目根目录中的 htaccess 文件可能需要更改,或者你的 apache 服务器可能有连接错误消息(Felippe 的想法——你的页面没有被提供),或者它可能是你的路线,也是。您介意从命令行发布此命令的结果吗? *** php 工匠路线:列表 *** @RoboBear 获取|头|重新发送 |重发邮件|App\Http\Controllers\HomeController@resendsms| web,auth,phone 这就是我尝试使用的路线 SyntaxError: Unexpected token < in JSON at position 0 - 这通常意味着响应不是 JSON,而可能是 html 格式的错误消息。你应该阅读它! 【参考方案1】:

这是与服务器端相关的问题。由于您的服务器输出调试错误代码(可能是 HTML),因此它不是有效的 JSON 输出,并且您的 javascript 代码无法将其解析为 JSON。

这意味着错误可能与通过您拥有这部分代码的路由调用的方法有关:

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

乍一看,您似乎试图在 null 上调用 save() 方法。您的 $user 对象是否丢失?尝试从 $request 中获取它。

但是,您仍然需要检查您的日志。 您应该在 .env 文件中将您的应用程序设置为调试模式。

然后你应该检查日志(如果没有安装独白,安装它) 在这里查看更多关于 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()]);

【讨论】:

$user 对象不为空或缺失,我尝试更改响应并得到:"success":"sent" 这是有效响应,但我仍然收到错误跨度> @Mcpartland,我认为您的错误是由于您尝试返回 save() 方法引起的,这可能会引发错误。尝试使用 try catch 块包装它 我没有收到任何错误:\,它返回 true

以上是关于GET 500(内部服务器错误)laravel/js的主要内容,如果未能解决你的问题,请参考以下文章

出现意外错误类型 = 内部服务器错误,状态 = 500

改造返回 500 内部服务器错误

内部服务器 500 错误 - Django

PDO 请求导致 500 内部服务器错误

Django POST 方法给出 500 内部服务器错误

POST 航行服务器 api 并响应客户端 500(内部服务器错误)