我正在开发一个关于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";
}
我不介意提供有关我工作的任何进一步信息。
答案 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);
}
});
}