当AJAX调用我的laravel方法时,将调用该方法,但是搜索项的var为空(在我的组合框中使用Select2)。但是,相同的代码可以在我的本地开发机上正常运行。
我已将laravel更新为5.8.11,以查看这是否有帮助,因为我的本地计算机运行的是稍稍较新的版本,php,已查看的日志,Chrome检查器,对此没有任何错误。
public function get_codes(Request $request)
{
$search = trim($request->q);
if(empty($search))
{
return response()->json([]);
}
$data = [];
$data = DB::table("codes")
->select("id","dx_code", "description")
->where('dx_code','LIKE',"$search%")
->get();
return response()->json($data);
}
ajax: {
url: "/dxcodes",
dataType: "json",
delay: 250,
data: function (params) {
return {
q: $.trim(params.term)
};
},
processResults: function (data) {
return {
results: data
};
},
cache: true
}
我的json响应是:[](运行测试后,我发现我的$ request-> q被视为空),但是,如果我删除了if(empty),我会得到响应。我不明白...再次,请记住,所有这些在我的本地计算机上都可以正常运行。我在生产服务器上的应用程序中还有其他ajax调用,它们可以正常工作,仅此一个调用。
此问题的解决方法是未正确设置此站点的Nginx Web服务器配置文件。 Nginx不使用.htaccess文件。 ?在index.php之后丢失了
try_files $uri $uri/ /index.php$query_string; (BAD)
try_files $uri $uri/ /index.php?$query_string; (GOOD)