【问题标题】:ajax in laravel -post method not allowed (405 error)laravel -post 方法中的 ajax 不允许(405 错误)
【发布时间】:2018-03-07 11:36:51
【问题描述】:

我想在 ajax 响应中获取值以填充选择框中的值 我已获取字段值并使用 ajax 发送到其他页面。在控制台中我捕获了POST http://localhost/pject_name/public/ajaxteach 405 (Method Not Allowed)但是当我在网络中的 url 打印“测试连接”时。如何在 ajax 调用中获得响应

$('#name-first').on('change',function(){
          dataString=$('#name-first').val();
        $.ajax({
                type: "POST",
                url : "{{url('ajaxteach')}}",
                data : dataString,
                success : function(data){
                    console.log(data);
                },error: function () {
             alert('Erreur. Veuillez réessayer.');
          } 
      });
     });
route
  Route::get('/ajaxteach', array(
   'as' => 'ajaxteach',
   'uses' => 'assetRequestController@getproject'
  ) );
controller
public function getproject(Request $request){
print_r($request->dataString);
     echo 'test connection';
}

【问题讨论】:

  • 你的类型应该是GET而不是POST
  • Route::post('/ajaxteach', array( 'as' => 'ajaxteach', 'uses' => 'assetRequestController@getproject' ) );
  • 尝试将type: "POST",改为type: "GET",
  • 在 RouteCollection.php 第 218 行尝试过 post.caught MethodNotAllowedHttpException:
  • 在您的 ajax 调用中仅更改为 type: "GET"

标签: php ajax laravel laravel-5 laravel-5.3


【解决方案1】:

这里是 HTTP 响应代码的官方列表。 https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

405 错误意味着您使用了错误的HTTP method。我可以看到您发送了 POST,所以它很可能正在寻找 GET 请求,尽管它可能是其他请求之一,例如 PUT PATCH DELETE 等(尽管不太可能)。

【讨论】:

    【解决方案2】:

    您在 AJAX 函数中使用了 GET 方法,并在路由中使用了 POST。正如 Delboy 所说,当您使用错误的 HTTP 方法时会出现 405 错误。当您像这样将路由更改为 POST 时,这应该可以工作。

      Route::post('/ajaxteach', array(
      'as' => 'ajaxteach',
      'uses' => 'assetRequestController@getproject'
      ));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-08
      • 1970-01-01
      • 2019-05-31
      • 1970-01-01
      • 2019-07-29
      • 2018-01-25
      • 2017-05-31
      • 2019-07-05
      相关资源
      最近更新 更多