我用jQuery的$.ajax()
向SOLR服务器发送请求并在JSON中获取结果,但它不起作用。我的代码是正确的,因此我无法弄清楚什么是错的。如果我将URL粘贴到浏览器的地址栏中,我会正确输出JSON。为什么SOLR不适用于jQuery?
我谷歌搜索它,并发现堆栈溢出一些类似的问题:一个问题说,使用$.getJSON
而不是任何理由,但也没有为我工作。
现在,我知道有一个AJAX-SOLR框架,我打算使用它,但我想知道为什么SOLR和jQuery有问题。
以下是我尝试使用$.getJSON
,以防万一它变成我的错误。
$('#searchForm').on('submit', function(){
// get the user entered search query
var query = $('#queryBox').val();
// send the AJAX request to solr and get the results
$.getJSON('http://localhost:8983/solr/select/?q='+query+'&wt=json&indent=true', function(searchResult){
alert('success');
});
alert(query);
return false;
});
我没有得到'成功'的警报。回调函数从不执行。我怎样才能解决这个问题?
如果服务器支持跨域请求(即启用了CORS),则只能进行跨域请求。或者你必须使用JSONP。但是,如果没有CORS,您无法从不同的域加载JSON。 –
@MaryMelody你对这个问题的拒绝拉里萨的[建议编辑](http://stackoverflow.com/review/suggested-edits/5760271),我认为是错误的。你拒绝和编辑,但你所做的只是从她的建议中删除一些有效的更正和改进,并引入额外的语法错误;最好接受这个建议。请参阅http://meta.stackoverflow.com/questions/271298/is-it-worth-re-editing-when-a-reviewers-reject-and-edit-fails-to-fix-problems上的元讨论 –