2016-09-01 2 views
0

내 경로 파일에 컨트롤러를 지정하지 않으면 현재 작동중인 간단한 게시물 요청이 있습니다. 내가 AJAX 요청을 위해 특별히 생성 한 컨트롤러에 액세스하기위한 경로를 변경하면 500 내부 서버 오류가 반환됩니다.Ajax 컨트롤러, Laravel에 액세스하지 못했습니다.

내 Route.php은 다음과 같습니다

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

내 컨트롤러는 다음과 같습니다

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 

class AjaxController extends Controller 
{ 
public function postAjaxTag(Request $request) { 
    if(Request::ajax()){ 
    return Response::json(Request::all()); 
    } 
} 

}

그리고 마지막으로 내 AJAX 코드는 다음과 같습니다

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

$(document).ready(function(){ 
    $('#tag-btn').click(function(){ 
    var fname = $('#firstname').val(); 
    var lname = $('#lastname').val(); 
    var token = $('#token').val(); 

    var dataString = $('#tag').serialize(); 

    $.ajax({ 
     type: 'POST', 
     url: '/ajaxTagStore', 
     data: dataString, 
     success: function(response){ // What to do if we succeed 
     console.log(response); 
     $('#postRequestData').html(response); 
     } 
    }) 

    }); 
}); 

내가 말한 것처럼 wor 컨트롤러를 지정하지 않고 그냥 사용해야하는 경우 다음을 사용하십시오.

Route::post('ajaxTagStore', function(){ 
if(Request::ajax()){ 
    return Response::json(Request::all()); 
} 
}); 

이유에 대한 제안 사항은 무엇입니까? (나는 csrf-token도 사용하고 있습니다)

+0

storage/logs 디렉토리에 오류 메시지가 있습니까? – Dan

답변

1

적어도 두 가지 문제가 있습니다.

  1. 텍스트 편집기를 통해 수동으로 만들거나 다른 컨트롤러에서 복사합니까? 그렇다면 composer dump-autoload 프로젝트에 자동로드 된 파일을 갱신하도록 제안 할 수 있습니다.

  2. Laravel의 컨트롤러는 routes.php 파일에 사용 된 하나보다 다른 Request 클래스를 사용하기 때문에 당신이 당신의 컨트롤러 방법 if($request->ajax()){if(Request::ajax()){을 변경할 때 또한

이 알려 마십시오 제안이 중 하나가 솔루션으로 문제가 해결되었습니다. 그래도 문제가 발생하면 아약스 결과에 표시된 오류 메시지를 표시하십시오. 희망이 귀하의 질문에 대답.

+0

2가 올바른 해결책이었습니다. 감사! –

+0

@JoelPierre이 답변이 해결책이라고 생각하시면 다행입니다. 그냥 받아 들인 것으로 표시하고 upvote를 잊지 마세요. 감사합니다! –

+0

나는 그랬지만 나는 그것을 보여주기에 충분한 "포인트"가 없다. –

관련 문제