【问题标题】:why I can't make a request from jquery to laravel route?为什么我不能从 jquery 向 laravel 路由发出请求?
【发布时间】:2019-08-13 11:25:25
【问题描述】:

我正在尝试通过 jquery 发出帖子请求,但似乎有问题。

路线:

Route::post('fblogin','UserController@fblogin')->name('fblogin');

Jquery:

$.post( "{{route('fblogin')}}", { 'response': response, '_token':'{{ csrf_token() }}' }, function( data ) {
      alert( "Data Loaded: " + data );
});

控制器:

public function fblogin(Reqeust $request)
    {           
            var_dump($request->response);
    }

【问题讨论】:

  • 你的 jQuery 是在 js 文件中,还是在 Blade.php 文件中?如果刀片结构和 PHP 在 js 文件中,它将无法工作。
  • 它在一个 .js 文件中
  • 您必须对路由进行硬编码,而不是使用刀片语法/PHP 函数。
  • 你可以用这个package

标签: php jquery laravel post routes


【解决方案1】:

哦,天哪,这是一个打字问题:

检查控制器第一行,它是“Reqeust $request”,但应该是“Request $request”

我不知道为什么它没有返回错误或任何东西。

【讨论】:

  • 因为它没有那么远。查看 cmets,没有在 javascript 中生成 URL。
  • 第一次没看懂这个问题。我以为您在询问 jquery.min.js 文件。但是 jquery 请求代码在刀片 php 文件中。造成误会请见谅
【解决方案2】:

如果你在一个 js 文件中,你不能使用刀片的 mustache 语法 {{ }}。

但如果你愿意,你可以将 'X-CSRF-TOKEN' 标头全局设置为 jQuery

let token = document.head.querySelector('meta[name="csrf-token"]')

jQuery.ajaxSetup({
  headers : {
    'X-CSRF-TOKEN' : token.content
  }
});

$.post(window.location.origin + '/fblogin', { 'response': response, '_token': token.content }, function( data ) {
      alert( "Data Loaded: " + data );
});

如果你想动态生成你的路线,有几种方法可以做到这一点,其中this package

【讨论】:

    猜你喜欢
    • 2017-08-30
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 2021-05-04
    • 2019-10-29
    • 1970-01-01
    相关资源
    最近更新 更多