AJAX GET 500内部服务器错误

时间:2017-06-28 09:18:01

标签: javascript jquery ajax laravel elasticsearch

我正在开发一个关于Laravel和Elasticsearch的项目。我是laravel的初学者。有一次,我在ajax GET调用中收到内部服务器错误。我的ajax电话看起来像这样。

function hint(str)
{
    $.ajax({
        url: "/search1/" + str, // str is argument to be passed to controller function
        type: 'GET',
        success: function(response) {
            document.getElementById("txtHint").innerHTML = this.response;
            console.log(this.response);
        },
        error: function(data) {
            console.log(this.response);
        }
    });
}

我试图通过传递字符串参数“str”以及函数调用来调用控制器函数。我对控制器的路由调用如下所示:

Route::get('/search1/{str}','SearchController@search');

我的控制器功能“搜索”如下所示:

public function search($str)
    {
        $client = ElasticSearch::create()->build(); // No error in this line
        $json = '{ // my json data }';
        $param1 = json_decode($json,true);
        //some code to modify a json field to "str";
        echo "something";
    }

我不介意提供有关我工作的任何进一步信息。

1 个答案:

答案 0 :(得分:0)

尝试在ajax调用中添加csrf标记:

function hint(str)
{
    $.ajax({
        url: "/search1/" + str, // str is argument to be passed to controller function
        data:'_token = <?php echo csrf_token() ?>',
        type: 'GET',
        success: function(response) {
            document.getElementById("txtHint").innerHTML = this.response;
            console.log(this.response);
        },
        error: function(data) {
            console.log(this.response);
        }
    });
}