0

我在解析来自 Solr 的提要时遇到了一种奇怪的行为。我没有使用 url1 得到任何响应。但是如果我使用 url2 代替,我会得到,在这两种情况下,我都会得到将 url 直接放入浏览器的响应。请问,我做错了什么?

<script type='text/javascript'>
  var searchterms = $('#input_box').val();
  var searchfield = $('#dropdown').val();

  var url1 ="http://localhost:8983/solr/moogle/select?q="+searchfield+"%3A%28"+searchterms+"%29&wt=json&indent=true";
  var url2 = 'http://localhost:8983/solr/moogle/select/?wt=json&json.wrf=?&q='+searchfield+':('+searchterms+')'

  $.getJSON(url1, function(result){
     alert("hello"+result.response.docs[0].title);
 });
</script>
4

2 回答 2

1

我找到了解决方案。这是与在网页的不同端口上运行 Solr 相关的浏览器跨域脚本问题。我通过json.wrf=?在 URL 中包含参数来解决此问题:

"http://localhost:8983/solr/moogle/select?q="+searchfield+"%3A%28"+searchterms
+"%29&wt=json&indent=true&json.wrf=?"
于 2013-05-19T23:14:47.477 回答
0

达米安,

Solr 中没有“无响应”。它以数据、错误代码或完整的异常描述进行响应。

不要检查“result.response.docs[0].title”,而是尝试“result.responseHeader.status”或响应标头中的其他值,这些值会指向错误。

从浏览器运行查询当然与从代码运行查询有点不同。

还要检查非常有用的 Solr 日志。如果使用 Apache,您可以在 Apache 服务器日志目录中找到它,每个查询和响应都有一条记录。

于 2013-05-19T18:48:30.957 回答