简单的Jquery Ajax请求Laravel ..错误代码:500

时间:2017-02-14 09:43:59

标签: jquery ajax laravel

我正在测试一些简单的ajax请求,我在尝试使用控制器进行响应时收到错误代码500 内部服务器错误500

我的web.php文件

 This one works fine
//Route::get('/test', function () {
//    return "i am a success get";
//});  

I cannot seem to get this one to work
Route::get('/test', 'shoppingCartController@testfunction');

我的控制器

class shoppingCartController extends Controller
{
    public function testfunction(Illuminate\Http\Request $request)
    {
//        
//        if ($request->isMethod('post')){    
//            return response()->json(['response' => 'This is post method']); 
//        }
//
//        return response()->json(['response' => 'This is get method']);
//         
        return 'test';
    }
}

我的jquery

$(document).ready(function(){

    $("button").click(function(){
        $.ajax({url: "test", success: function(result){
                $("#div1").html(result);
            }, error: function(xhr){
                $("#div1").html(xhr.statusText + " " + xhr.status);
            }
        });
    });
});

2 个答案:

答案 0 :(得分:0)

好的答案是因为n00dl3建议控制器在没有ajax的情况下也不能正常工作。好像我得到了

Illuminate\Http\Request not found exception 

答案 1 :(得分:0)

将此代码用于ajax调用:

 <script type="text/javascript">
     var urla = {!! json_encode(url('/')) !!};
     jQuery.ajax({
            type: "GET",
            url: urla + '/test',
            dataType: 'json',
            data: {logtype: type},
            success: function (msg) {
                console.log(msg);
            },
        });
</script>

并将'test'方法设置为:

Route::get('/test', 'TestController@test');

此处将TestController更改为您放置test方法的控制器。

当然你可以在ajax调用中添加error子句。这里我刚刚添加了console.log(msg),其中msg是json编码的响应。