【问题标题】:How to fix 404 not found when access the route using ajax and laravel使用ajax和laravel访问路由时如何修复404未找到
【发布时间】:2020-04-14 11:07:02
【问题描述】:

我目前是 laravel 的新开发人员,我在访问路由时遇到问题,如果我尝试单击响应中的编辑按钮,则会出现错误。此错误显示在我的生产中,但在我的本地主机上,未显示此错误。我的问题是为什么会显示这个错误?

“例外”: "Symfony\Component\HttpKernel\Exception\NotFoundHttpException",

阿贾克斯:

$('.news_and_events_edit_btn').on('click',function(e){

    e.preventDefault();

    var id = $(this).attr("data-content-id-edit");

    $('.news_and_events_hidden_update_id').val(id);

    $.ajax({
        url:'/get_news_and_event_data',
        type:'get',
        data:{content_id: id},
        dataType:'JSON',
        success:function(res) {
            $('#update_news_and_events_title').val(res[0].content_title);
             update_appEditor_news_and_event.data.set(res[0].content_desc);

        },
        error:function(err) {
            console.log(err);

        }
    });
});

路线:

Route::get('/get_news_and_event_data','CMSController@get_news_and_event_data')->name('get_news_and_event_data');

错误:

【问题讨论】:

  • 刀片文件中的 ajax 代码?
  • 尝试在你的ajax请求中添加一个绝对url来测试它是否仍然返回404。
  • @kelvinkantaria 你是什么意思?
  • @RajenderVerma 绝对网址是什么意思?
  • 在 ajax url 测试中使用 url: "example.com/get_news_and_event_data" 将 example.com 替换为您的网站 url,如果您这样做,请检查您是否在路由中使用任何前缀,然后在 url 中使用它

标签: javascript php ajax laravel


【解决方案1】:

使用您的 content_id 参数更改您的 routeajax url,然后尝试

路线

Route::get('/get_news_and_event_data/{content_id}','CMSController@get_news_and_event_data')->name('get_news_and_event_data');

AJAX 调用

     $.ajax({
        url:'/get_news_and_event_data/{content_id}',
        type:'get',
        data:{content_id: id},
        dataType:'JSON',
        success:function(res) {
            $('#update_news_and_events_title').val(res[0].content_title);
             update_appEditor_news_and_event.data.set(res[0].content_desc);

        },
        error:function(err) {
            console.log(err);

        }
    });

【讨论】:

  • 我已经在我的文档顶部添加了令牌准备好了.. $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]') .attr('content') } });
  • 为什么GET REQUEST中需要csrf_token?
  • 对不起,它不起作用,它给出了 404 未找到。我所有的 ajax 函数都无法正常工作,即使插入显示 404 未找到的数据
  • 所以你的代码可能是错误的 调试你的代码并找出确切的代码在哪里中断。还检查storage/log/ 以获取最新的错误日志
  • 我已经解决了我的问题,我需要做的是 url: ../route 谢谢大家..
【解决方案2】:

把网址改成这样。

var id = content_id;

$.ajax({
        url: '{{ URL::route('get_news_and_event_data') }}/'+id,
        type:'get',
        data:{content_id: id},
        dataType:'JSON',
        success:function(res) {
            $('#update_news_and_events_title').val(res[0].content_title);
             update_appEditor_news_and_event.data.set(res[0].content_desc);

        },
        error:function(err) {
            console.log(err);

        }
    });

【讨论】:

  • 对不起,它不起作用,它给出了 404 未找到。我所有的 ajax 函数都无法正常工作,即使插入显示 404 未找到的数据
  • 我已经解决了我的问题,我需要做的是 url: ../route 谢谢大家..
【解决方案3】:

您应该在 ajax 请求中使用route。 它会将您重定向到route

$.ajax({
        url:"{{ route('get_news_and_event_data') }}",
        type:'get',
        data:{content_id: id},
        dataType:'JSON',
        success:function(res) {
      }

例如,我有一个代码,

jQuery.ajax({
   url: "{{ route('SomeUrlHere') }}",
   method: 'get',
   data: {
       id : id
  }
success: function(data){
    if(data) {
         console.log(data);
    }

【讨论】:

  • 对不起,它不起作用,它给出了 404 未找到。我所有的 ajax 函数都无法正常工作,即使插入显示 404 未找到的数据
  • 不要使用数据类型:JSON。
  • @SoulAiker 我已经添加了我的示例代码,请按照此操作或查看文档codeinhouse.com/…
  • 我已经解决了我的问题,我需要做的是 url: ../route 谢谢大家..
  • 如果您发布您是如何解决问题的,将会很有帮助。
【解决方案4】:

为了解决我的问题,我发现有一个子文件夹,所以从url:'/get_news_and_event_data',到url:'/..get_news_and_event_data',

谢谢大家

【讨论】:

    猜你喜欢
    • 2022-01-14
    • 2020-10-26
    • 2014-06-25
    • 2015-02-04
    • 2019-07-10
    • 2019-09-17
    • 1970-01-01
    • 2018-12-25
    • 2013-10-07
    相关资源
    最近更新 更多