2011-05-19 95 views
1

我在這方面很新穎。 我需要找出如何使用Ajax向我的solr服務器發出請求 如何在請求中提供url(我的solr服務器的url) 任何機構都知道如何處理這個問題? 我怎麼能做出下面提到的URL的請求如何使用AJAX請求網址

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
$.ajax({ 
    url: "url path", 
    context: document.body 
    }).done(function(data) { 
     alert(data); 
}); 

這一個也可以。

1

你將不得不在請求發送之前準備URL首先使用JavaScript獲取URL,然後將其編碼爲阿賈克斯格式像下面

var URL = location.href; 
var ajaxURL = encodeURIComponent(URL); 
xmlhttp.open("GET",ajaxURL,true); 

閱讀您的問題後,明確它似乎它是一個靜態的URL因此您可以在下面做

var URL = "http://localhost:8080/blah blah blah"; 
xmlhttp.open("GET",URL,true); 

您確定這是獲取請求。因爲獲取請求大部分時間都是緩存的。還將響應對象記錄到Firebug控制檯並檢查該對象以瞭解更多信息。由於您沒有收到任何迴應,這意味着服務器未向您發送任何請求。

+0

感謝Deeptechtons – 2011-05-19 11:08:14

+0

@Nikhil所以它的工作。我沒有休息,直到它的工作:D順便說一句,如果它回答了請點擊投票控件下方的刻度標記 – Deeptechtons 2011-05-19 11:29:47

+0

雅它工作,但我沒有得到任何迴應從服務器。我使用的代碼可以在上面找到。 當我在瀏覽器中使用url時,我得到了工作,我在我的瀏覽器中得到了xml響應 但在Ajax中使用它時我沒有收到任何回覆 請幫助我 – 2011-05-19 11:52:39

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)

+0

啊,現在我發現你的問題已經解決了。好吧,我可能會幫助其他人。 – worldsayshi 2012-09-28 16:54:50