为什么我的 JSONP 响应来自本地主机的 SOLR blank/error?
Why is my JSONP response blank/error from SOLR at localhost?
我已经在本地设置了 Solr。在浏览器中使用查询效果很好。我正在尝试访问 JSON-JQuery 中的查询结果,但我做不到。
当我 运行 在我的浏览器中发出以下请求时,我得到以下结果:
http://localhost:8983/solr/Products/select?q=HPI-850&fl=id%2CPris&&rows=2&wt=json&json.wrf=solrCallback
solrCallback({
"responseHeader":{
"status":0,
"QTime":1,
"params":{
"q":"HPI-850",
"json.wrf":"solrCallback",
"fl":"id,Pris",
"rows":"2",
"wt":"json"}},
"response":{"numFound":3701,"start":0,"numFoundExact":true,"docs":[
{
"Pris":1195,
"id":"10440"},
{
"Pris":1195,
"id":"16656"}]
}})
运行 我在本地主机的浏览器中的以下代码我从 https://www.sitepoint.com/jsonp-examples/ 找到的示例中得到 JSONP 响应,但我自己的 URL。为什么?我的代码不好,还是 Solr 以任何方式阻止请求?
<!doctype html>
<html lang="en">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<h1>FRA TEST</h1>
<div id="Test_JSON"></div>
<br /><br />
<h1>FRA SOLR</h1>
<div id="SOLR_JSON"></div>
<script>
function jsonCallback(json) {
//alert(JSON.stringify(json));
$("#Test_JSON").html(JSON.stringify(json));
}
$.ajax({
url: "http://run.plnkr.co/plunks/v8xyYN64V4nqCshgjKms/data-2.json",
dataType: "jsonp"
});
function solrCallback(json) {
//alert(JSON.stringify(json));
$("#SOLR_JSON").html(JSON.stringify(json));
}
$.ajax({
url: "http://localhost:8983/solr/Products/select?q=HPI-850&wt=json&json.wrf=solrCallback",
dataType: "jsonp"
});
</script>
</body>
</html>
我不知道为什么它不能与 JSONP 一起工作的细节,因为据我所知,它应该可以工作。在寻找解决方案时,我最终在 Solr 中启用了 CORS。
我遵循了这个指南:
http://laurenthinoul.com/how-to-enable-cors-in-solr/
这样做之后,我可以毫无问题地通过 JQuery 从 Solr 获取我的 Json。
我已经在本地设置了 Solr。在浏览器中使用查询效果很好。我正在尝试访问 JSON-JQuery 中的查询结果,但我做不到。
当我 运行 在我的浏览器中发出以下请求时,我得到以下结果: http://localhost:8983/solr/Products/select?q=HPI-850&fl=id%2CPris&&rows=2&wt=json&json.wrf=solrCallback
solrCallback({
"responseHeader":{
"status":0,
"QTime":1,
"params":{
"q":"HPI-850",
"json.wrf":"solrCallback",
"fl":"id,Pris",
"rows":"2",
"wt":"json"}},
"response":{"numFound":3701,"start":0,"numFoundExact":true,"docs":[
{
"Pris":1195,
"id":"10440"},
{
"Pris":1195,
"id":"16656"}]
}})
运行 我在本地主机的浏览器中的以下代码我从 https://www.sitepoint.com/jsonp-examples/ 找到的示例中得到 JSONP 响应,但我自己的 URL。为什么?我的代码不好,还是 Solr 以任何方式阻止请求?
<!doctype html>
<html lang="en">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<h1>FRA TEST</h1>
<div id="Test_JSON"></div>
<br /><br />
<h1>FRA SOLR</h1>
<div id="SOLR_JSON"></div>
<script>
function jsonCallback(json) {
//alert(JSON.stringify(json));
$("#Test_JSON").html(JSON.stringify(json));
}
$.ajax({
url: "http://run.plnkr.co/plunks/v8xyYN64V4nqCshgjKms/data-2.json",
dataType: "jsonp"
});
function solrCallback(json) {
//alert(JSON.stringify(json));
$("#SOLR_JSON").html(JSON.stringify(json));
}
$.ajax({
url: "http://localhost:8983/solr/Products/select?q=HPI-850&wt=json&json.wrf=solrCallback",
dataType: "jsonp"
});
</script>
</body>
</html>
我不知道为什么它不能与 JSONP 一起工作的细节,因为据我所知,它应该可以工作。在寻找解决方案时,我最终在 Solr 中启用了 CORS。
我遵循了这个指南: http://laurenthinoul.com/how-to-enable-cors-in-solr/
这样做之后,我可以毫无问题地通过 JQuery 从 Solr 获取我的 Json。