我在这个领域很新。 我需要了解如何使用Ajax向我的solr服务器发出请求 如何在请求中提供URL(我的solr服务器的URL) 有谁知道怎么处理这个? 我如何向下面提到的网址提出请求
http://mysite:8080/solr/select/?q=%2A%3A%2A&version=2.2&start=0&rows=100&indent=on
请参阅此处:修正了以下代码段
function getProductIds() {
var xmlhttp;
if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
else xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) console.dir(xmlhttp);
else alert('no response');
var ajaxURL = "http://localhost:8080/solr/select/?q=*:*&version=2.2&start=0&rows=100&indent=on";
xmlhttp.open("GET", ajaxURL, true);
xmlhttp.send();
}
这是我的代码,它始终显示“无响应”
感谢。
答案 0 :(得分:1)
您必须在发送请求之前准备URL,首先使用javascript获取URl,然后将其编码为ajax格式,如下所示
var URL = location.href;
var ajaxURL = encodeURIComponent(URL);
xmlhttp.open("GET",ajaxURL,true);
在清楚地看到你的问题后,它似乎是一个静态网址,因此你可以在下面做
var URL = "http://localhost:8080/blah blah blah";
xmlhttp.open("GET",URL,true);
您确定是Get请求吗?因为获取请求大多数时候都是缓存的。还要将响应对象记录到Firebug控制台中并检查对象以了解更多信息。由于您没有得到回复,这意味着服务器没有向您发送任何请求。
答案 1 :(得分:1)
我现在正在处理XMLHttpRequests以解决问题,而我似乎陷入了同样的问题。我也很陌生。但是,对我来说问题是同源政策。当出现此问题时,Firefox似乎很少给出反馈。 Chrome至少会给你一个错误信息(大部分时间都是?)。
在Chrome中,您可以通过'--disable-web-security'命令行选项启动它,但仅用于开发目的。
我还没有为Solr找到解决这个问题的好方法。通常,您只需使用具有相对路径的请求来避免限制,但that doesn't seem possible when doing a request to another port。
Ways to circumvent the policy (I haven't had time to study this too much yet)
答案 2 :(得分:0)
$.ajax({
url: "url path",
context: document.body
}).done(function(data) {
alert(data);
});
这个也可以。