如何发送一个Ajax请求Laravel 5.0框架?

问题描述 投票:2回答:2

我已经尝试了所有上午解决这个问题,似乎我无法在网上找到任何工作方法。

我试图做一个简单的Ajax请求,我Laravel控制器,并把它发送数据。我已经将它简化到最大,我仍然得到数据“未定义”错误500。

似乎每例人在线是关于Laravel 4.0,我不知道,如果他们改变了什么或没有,但似乎没有工作。我也试图改变的路线“任何”,它工作在直接访问,但不与Ajax请求。

谢谢。

控制器:

<?php namespace App\Http\Controllers;
use Session, DB, Request;
class AjaxController extends Controller {

    public function question()
    {
        print_r("Made It");
        die();
    }
}

路线:

Route::post('/ajax/question', 'AjaxController@question');

使用Javascript:

$.ajax({
    url: "/ajax/question",
    method: 'POST',
    data:  { 'answered': '1' },
    processData: false,
    contentType: false,
    cache: false,
    success: function(data) {
        console.log(data);
        console.log("success");
    },
    error: function(data) {  
        console.log(data);
        console.log("error");                 
    }
});

的console.log(数据)给出以下:

readyState

    4
responseText

    ""
status

    500
statusText

    "Internal Server Error"
abort

    function(e)
always

    function()
complete

    function()
done

    function()
error

    function()
fail

    function()
getAllResponseHeaders

    function()
getResponseHeader

    function(e)
overrideMimeType

    function(e)
pipe

    function()
progress

    function()
promise

    function(e)
setRequestHeader

    function(e, t)
state

    function()
statusCode

    function(e)
success

    function()
then

    function()

编辑:如果我更改请求得到它正常工作。 (设定路线的话)

php jquery ajax laravel laravel-5
2个回答
3
投票

如果您在您的浏览器控制台的响应看,机会是你打的CSRF middleware。您需要发布_token与用户的csrf_token()当前值。

我们包括在此以自动添加到通过头所有的AJAX请求(其中Laravel理解)我们的页面布局:

<script>
$(function() {
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': {!! json_encode(csrf_token()) !!};,
        }
    });
});
</script>

https://github.com/laravel/framework/blob/8687d42c6674e47efc093b5092ea217b62ba293a/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php#L55对于其工作原理的细节。


0
投票
$.ajax({

    type: "POST",

    URL: "test/",

    data: { 

        id: $(this).val(), // < note use of 'this' here

        access_token: $("#access_token").val() 
    },

    success: function(result) {

        alert('YES');
    },
    error: function(result) {

        alert('Some Thing went wrong');

    }

});
© www.soinside.com 2019 - 2024. All rights reserved.