AJAX删除方法在LARAVEL中添加了两个路由参数

时间:2018-12-21 08:19:50

标签: php ajax laravel http-delete

我正在使用带有AJAX的Laravel Delete方法来删除一个问题,当问题被删除时,它会转到localhost/upwork_project/questions,当我单击任何一个问题的“更多”按钮时,URL都将显示为localhost/upwork_project/questions/questions/my-question-slug由于questions/questions的双重参数而导致错误404未找到,但是当我创建问题或对其进行编辑时,请勿添加任何额外的参数,并且一切正常,但是当我删除任何问题时,它将转到问题的索引页面并执行此操作拉屎。 我的AJAX请求:

$.ajax({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    },
    url: $(this).attr('action'),
    type: 'DELETE',
    success: function(data) {
            if (data == 'question_deleted') {
                window.location.href = './';
            }
            else if (data == 'question_deletion_error') {
                $('.invalid-feedback').fadeIn('fast');
                $('.question_deletion_error').html('Ops! there is an error.')
            }
    },
});

我的阅读更多按钮代码是:

<a href="questions/{{ $question->question_slug }}" class="btn btn-primary btn-sm">Continue Reading</a>

2 个答案:

答案 0 :(得分:0)

因此,答案是惊讶的,您在网址中缺少/

我假设您在/questions页上有这个问题,所以您需要更改此问题:

<a href="questions/{{ $question->question_slug }}" class="btn btn-primary btn-sm">Continue Reading</a>

对此:

<a href="/questions/{{ $question->question_slug }}" class="btn btn-primary btn-sm">Continue Reading</a>

注意网址中的开始/

或者只是将问题完全从href中删除,并仅将其附加到当前位置即可。

答案 1 :(得分:0)

我已经解决了这个问题 AJAX 中出现错误,如下:

if (data == 'question_deleted') {
    window.location.href = '../questions';
}

只需更改 window.location.href = './'; window.location.href = '../questions';