【发布时间】:2019-01-24 08:16:04
【问题描述】:
我已经从 https://github.com/devbridge/jQuery-Autocomplete 合并了 jQuery Autocomplete 库
在服务器 (Laravel) 上,我将响应格式化如下:
Route::get('/api/v1/products', function() {
foreach(App\Product::all() as $product) {
$products[] = [
'value' => $product->name,
'data' => $product->id
];
}
return response()->json($products)->header("Access-Control-Allow-Origin", "*");
});
这会产生以下响应:
[
{
"value": "Test Product 1",
"data": 1
},
{
"value": "Skateboard",
"data": 23
},
{
"value": "Surfboard",
"data": 24
}
]
为了让库使用数据,我使用以下代码:
jQuery('#product-search').autocomplete({
serviceUrl: '/api/v1/products',
onSelect: function (suggestion) {
alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
}
});
输入后,控制台返回此错误:
我已经添加了 Access-Control-Allow-Origin 标头以确保没有 CORS 错误。除此之外,我不确定为什么会收到此错误。
我还确保 json 响应的格式正确。
我错过了什么?
【问题讨论】:
-
html 是动态生成的,我的意思是通过 ajax 响应?
-
@VasimVanzara 我不明白你的意思。
-
你必须确定控制是否真的存在?
-
对于 Access-Control-Allow-Origin,您可以使用 this package
-
控制台消息是什么意思?
标签: jquery json ajax laravel api