2016-11-06 2 views
0

jQuery $ .post 메서드를 사용하여 양식을 게시하려고하지만 Laravel 프레임 워크에서 MethodNotAllowedHttpException 오류가 발생합니다. 라우트/컨트롤러로가는 요청 유형에 약간의 불일치가 있음을 이해하지만 어디에서 확인할 수 없습니다.

jQuery를 호출

$.post("create", $("#myForm").serialize(), function(data) { 
    var json=JSON.parse(data); 
     console.log(json); 
    }); 

컨트롤러

class create extends Controller 
{ 
// 
public function createRecord(){ 

    $test="test"; 
    return $test; 

    } 
} 

경로 (web.php)

Route::post('create',array('uses'=>'[email protected]')); 

답변

0

당신을 확인 모든 일이 컨트롤러를 지나가고 있다면, 이렇게 경로를 정하십시오.

Route::post('create', '[email protected]');

이것은 내가 제안 할 수있는 유일한 일이다. 수정 여부를 확인하십시오.

+0

그래서 작동합니까? 또는 여전히이 오류가 발생합니까? –

+0

문제가 해결되면 대답을 표시하십시오. –

0

이 verifyCsrfToken.php의 미들웨어에서 모든 요청

<?php 
namespace App\Http\Middleware; 

use Closure; 

class Cors { 

public function handle($request, Closure $next) 
{ 
    header("Access-Control-Allow-Origin: *"); 

    // ALLOW OPTIONS METHOD 
    $headers = [ 
     'Access-Control-Allow-Methods'=> 'POST, GET, OPTIONS, PUT, DELETE', 
     'Access-Control-Allow-Headers'=> 'Content-Type, X-Auth-Token, Origin' 
    ]; 
    if($request->getMethod() == "OPTIONS") { 
     // The client-side application can set only headers allowed in Access-Control-Allow-Headers 
     return Response::make('OK', 200, $headers); 
    } 

    $response = $next($request); 
    foreach($headers as $key => $value) 
     $response->header($key, $value); 
    return $response; 
} 

} 

이 routes.php 경로를 생성이

protected $except = [ 
    // 
    'api/*', 
]; 

를 추가 할 수 있도록 미들웨어에 cors.php 만들기 시도 앱의

Route::group(['middleware' => 'cors'], function() 
{  
    Route::post('api/create', '[email protected]'); 
}); 
0

ajax 함수에 csrf 토큰을 추가하십시오. 구문이 올바르지 않을 수도 있지만 이것이 논리입니다.

$.post("create", $("#myForm").serialize(),"_token" : "{{csrf_token()}}", function(data) { 
    var json=JSON.parse(data); 
    console.log(json); 
}); 
관련 문제