【问题标题】:laravel Ajax success function not workinglaravel Ajax成功功能不起作用
【发布时间】:2017-08-21 13:10:38
【问题描述】:

我通过 AJAX 向我的 laravel 应用程序发送了一个 store 请求。控制器功能正常工作,但我无法在我的 ajax 函数中获得成功消息,或者成功的功能不工作。

Ajax 代码:

$.ajax({
    type: "POST",
    url: 'http://127.0.0.1:8000/dreams',
    data: {
        description: description,
        offset_top: offset_top,
        offset_left : offset_left
    },
    success: function(msg){
        console.log("done");
    }
});

控制器的store函数:

public function store(Request $request)
{
    echo $request;
    if (Auth::check()) {
        $user = Auth::user();
        $dream = new Dream($request->all());
        if ($dream) {
            $user->dreams()->save($dream);
            $response = array(
              'dream' => $dream,
              'status' => 'success',
              'msg' => 'Setting created successfully',
            );
            return \Response::json($response);
        }
        return \Response::json(['msg' => 'No model']);
    } else {
      return \Response::json('msg' => 'no auth');
    }
}

【问题讨论】:

  • 如果您没有得到success 处理程序,则说明某处有错误。检查控制台。也有可能根本没有发出 AJAX 请求。同样,您需要付出一些努力来调试逻辑。您在此处显示的信息很少,可能会出现数千个错误。
  • 尝试在 store 方法的第一行删除echo $request;。然后会发生什么?
  • 控制台没有错误(php artisan serve),日志文件也没有(storage/logs/laravel.log)
  • 在网络浏览器控制台中 ....
  • @ChrisForrence 成功了。看来问题出在echo $request

标签: php jquery ajax laravel laravel-5


【解决方案1】:

尝试使用这种方式在ajax中传递数据。

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

$.ajax({
    type: "POST",
    url: 'http://127.0.0.1:8000/dreams',
    data: {
        description: description,
        offset_top: offset_top,
        offset_left: offset_left
    },
    success: function(msg) {
        console.log("done");
    }
});

【讨论】:

    【解决方案2】:

    试试下面的 store 方法代码:

    public function store(Request $request)
    {
        if (Auth::check()) {
            $user = Auth::user();
            $dream = new Dream($request->all());
            if ($dream) {
                $user->dreams()->save($dream);
                $response = array(
                  'dream' => $dream,
                  'status' => 'success',
                  'msg' => 'Setting created successfully',
                );
                return \Response::json($response);
            }
            return \Response::json(['msg' => 'No model']);
        } else {
          return \Response::json(['msg' => 'no auth']);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      • 2016-05-25
      • 1970-01-01
      相关资源
      最近更新 更多