【问题标题】:Laravel AJAX NotFoundHttpExceptionLaravel AJAX NotFoundHttpException
【发布时间】:2019-03-12 22:31:24
【问题描述】:

我一直在尝试在我的 laravel 项目中使用 AJAX,但它总是返回错误,

RouteCollection.php 上的 NotFoundHttpException", "line": 179

我在 web.php 中的路由是

Route::post('/ajaxRequest','AjaxController@index');

控制器代码是

class AjaxController extends Controller {
   public function index(){
      $msg = "Ajax test message";
      return response()->json(array('msg'=> $msg), 200);
   }
}

我使用的 Ajax 调用是

    $.ajax({
             type:'POST',
             url:'{{url("/ajaxRequest")}}',
             datatype:'json',
             data: pass,
             success:function(data){
                $("#result").html(data.msg);
              }
            }).fail(function (jqXHR, textStatus, error) {
                // Handle error here
                $("#result").html(jqXHR.responseText);
});

并将元标记内容用于 csrf_token

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

并使用检索值

var pass={'_token': $('meta[name="csrf-token"]').attr('content')};

请帮我解决这个错误。

【问题讨论】:

  • 使用路由名调用路由有什么问题吗?
  • '{{url("/ajaxRequest")}}' - 如果您在 JS 文件(刀片外部)中,这可能不会产生您认为应该具有的效果。
  • 使用url:'/ajaxRequest',,如果您按照@Exterminator 的建议将ajax 代码放在单独的js 文件中
  • 欢迎。使用浏览器控制台/网络选项卡确保请求正确。您也可以使用php artisan route:list 来确保您的路线在系统中。 (使用php artisan route:cache 重新加载/缓存您的路由文件)

标签: php ajax laravel methodnotfound


【解决方案1】:

改变路线到这里

Route::post('/ajaxRequest','AjaxController@index')->name('routeName');

并在 ajax 请求中进行以下更改:

 $.ajax({
             type:'POST',
             url:'/ajaxRequest',  //if in js file
             url:'{{route("routeName")}}',  //if in blade file 
             datatype:'json',
             data: pass,
             success:function(data){
                $("#result").html(data.msg);
              }
            }).fail(function (jqXHR, textStatus, error) {
                // Handle error here
                $("#result").html(jqXHR.responseText);
});

【讨论】:

  • ajax 请求在名为 ajax.js 的 js 文件中,输出设置为刀片文件
  • 检查我为两者提供的解决方案的代码,如果出现任何错误,请粘贴网络输出截图
【解决方案2】:

使用路由名称调用路由

路由文件

Route::post('/ajaxRequest','AjaxController@index')->name('ajaxRequest');

还有你的 ajax 请求

 $.ajax({
             type:'POST',
             url:'{{route("ajaxRequest")}}',
             datatype:'json',
             data: pass,
             success:function(data){
                $("#result").html(data.msg);
              }
            }).fail(function (jqXHR, textStatus, error) {
                // Handle error here
                $("#result").html(jqXHR.responseText);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 2015-01-11
    • 2013-08-17
    • 2015-03-03
    • 2015-12-06
    相关资源
    最近更新 更多