【问题标题】:Error status 500 Ajax on LaravelLaravel 上的错误状态 500 Ajax
【发布时间】:2018-03-14 19:27:33
【问题描述】:

很好,我正在尝试通过 ajax 删除,但出现以下错误:

加载资源失败:服务器响应状态为 500(内部服务器错误)

我搜索了错误,显然是由令牌出现的,所以我已经按照他们的建议做了,我在视图中添加了这个:

<meta name="csrf-token" content="{{ csrf_token() }}">

ajax:

$('#delete').on('click', function(){
    var x = $(this);
    var delete_url = x.attr('data-href')+'/'+x.attr('data-id');

    $.ajax({
        url: delete_url,
        type:'DELETE',
        headers:{
            "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
        },
        success:function(result){
            alert('success');
        },
        error:function(result){
            alert('error');
        }
    });
});

控制者:

public function destroy($id)
{
    $appointment = Appointment::find($id);

    if(appointment == null) {
        return Response()->json([
            'message'=>'error delete.'
        ]);
    }

    $appointment->delete();

    return Response()->json([
        'message'=>'sucess delete.'
    ]);
}

路线:

Route::name('appointments.destroy')->delete('/citas/{id}', 'AppointmentController@destroy');

这肯定是一个标记错误,因为如果我在路线上不需要它,它会完美地完成......

class VerifyCsrfToken extends BaseVerifier
{
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        'citas/*'
    ];
}

【问题讨论】:

  • 你能告诉我们web.php文件中的路线吗?
  • 完成! @mbozwood
  • 你的删除网址完美吗??
  • 你能用console.log(delete_url);的输出更新你的问题吗
  • 为什么不使用 axios..laravel 自带 axios.. 使用 csrf 令牌更简化的 ajax

标签: php jquery ajax laravel laravel-5


【解决方案1】:

您可以在开发者控制台、网络选项卡上检查确切的错误。在那里查找您的请求并检查预览或在新的 chrome 选项卡中打开它。

发布的代码有错字,也许它也在您的文件中?您错过了将 $ 添加到您的 appointment 变量中。

public function destroy($id)
{
    $appointment = Appointment::find($id);

    if($appointment == null) {
        return Response()->json([
            'message'=>'error delete.'
        ]);
    }

    $appointment->delete();

    return Response()->json([
        'message'=>'sucess delete.'
    ]);
}

【讨论】:

  • 探测写_token但没解决,谢谢解答
  • 如果JS在外部文件中,则不能使用Blade模板
  • 检查开发者控制台上的错误并更新您的问题
  • @aaron0207 我该怎么办?
  • 按 Ctrl+Shift+I (Windows) 或 Cmd+Option+I (Mac) 打开 chrome 开发工具,单击网络选项卡,按禁止图标清除所有记录的请求并创建一个新的ajax 调用无需重新加载页面,现在将有一个包含您的请求响应的日志,单击它并检查预览选项卡。我用所有描述的选项卡和元素制作了一个截图:imgur.com/a/jNTIH
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-19
  • 2020-02-12
  • 2019-09-11
  • 2018-02-04
相关资源
最近更新 更多