使用 $.ajax 获取 Sol:r JSON
我想从 sol:r 请求获取 JSON 结果,但总是收到错误。
代码如下:
$.ajax({
url: 'http://' + url + '/solr/select',
type: 'POST',
data: 'indent=on&version=2.2&q=name:pzn&start=0&rows=10&fl=name&qt=&wt=json',
dataType: 'jsonp',
success: function (data, textStatus, xhr) {
var str = eval("("+data+")");
$("#results").html('raw JSON: ' + str);
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + ": " + errorThrown);
}
});
在我的日志中,我可以看到该请求已由 sol:r 处理并发送回 json。 但我得到的只是一个错误,如“ jQuery15204679577243202049_1316167632724 未被调用”。不是很有帮助,但 Firebug 控制台说,响应中有一个无效标签,并且只向我显示第一个 JSON 行 '"responseHeader":{'
但我得到了整个 JSON。唯一不起作用的是,他就是不给我:D
我该如何解决这个问题?
i want to fetch my JSON result from a sol:r request, but I always get an error back.
Heres the code:
$.ajax({
url: 'http://' + url + '/solr/select',
type: 'POST',
data: 'indent=on&version=2.2&q=name:pzn&start=0&rows=10&fl=name&qt=&wt=json',
dataType: 'jsonp',
success: function (data, textStatus, xhr) {
var str = eval("("+data+")");
$("#results").html('raw JSON: ' + str);
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + ": " + errorThrown);
}
});
In my Log I can see, that the request has been handled by sol:r and sent an json back.
But all I get is an error like ' jQuery15204679577243202049_1316167632724 was not called'. Not very helpful but Firebug console says, that there's a invalid label in the response and just shows me the first JSON line '"responseHeader":{'
But I get the whole JSON back. The only thing that doesn't work, he just won't give it to me :D
How do I solve this problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
请查看这篇博文SOLR with JSONP with jQuery.作者展示了使用 jQuery Ajax 调用 Solr 的几种不同方法。
更新:如何处理结果..
您可以执行以下操作来访问生成的原始 JSON 对象...
另外还要再次查看您的问题,我不确定您想要/需要做什么ajax POST 与 ajax GET 应该返回相同的结果。我刚刚添加的示例仅执行 ajax GET。
Please look at this blog post SOLR with JSONP with jQuery.The author shows a couple of different ways to call Solr with jQuery Ajax.
Update: How to handle result..
You can do the following to get access to the resulting raw JSON object...
Plus also looking at your question again, I am not sure you want/need to do an ajax POST, as an ajax GET should return the same results. And the example I just added is only doing an ajax GET.
您可以直接使用 getJson 函数从 Solr 获取 json 响应。
确保添加 json.wrf=?参数传入请求URL,因此调用success方法。
更多 @ http://wiki.apache.org/solr/SolJSON#JSON_specific_parameters
You can use the getJson function directly to get the json response from Solr.
Be sure you add the json.wrf=? parameter to the request URL, so the success method is called.
More @ http://wiki.apache.org/solr/SolJSON#JSON_specific_parameters