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的主要内容,如果未能解决你的问题,请参考以下文章