laravel -post方法中的ajax不允许(405错误)

时间:2017-09-26 09:51:43

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

我想获取ajax响应中的值以填充选择框中的值 我已经获取了字段值并使用ajax发送到其他页面。在控制台中我捕获了POST http://localhost/pject_name/public/ajaxteach 405 (Method Not Allowed)但是当我在网络中的url它打印'test connection'。如何在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';
}

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您在AJAX函数中使用了GET方法,并在路径中使用了POST。正如Delboy所说,当你使用错误的HTTP方法时会出现405错误。当您将路径更改为POST时,这应该有效。

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