2011-05-19 20 views
1

私はこの分野でかなり新しいです。 私はAjaxを使って自分のsolrサーバーにリクエストする方法を見つける必要があります リクエストに応じてURL(私のsolrサーバーのURL)を与えるにはどうすればいいですか どのようにしてこれを処理するのか知っていますか? は、どのように私は、下記のURLへの要求を行うことができるAJAXを使用して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
$.ajax({ 
    url: "url path", 
    context: document.body 
    }).done(function(data) { 
     alert(data); 
}); 

この1も動作します。

1

最初JavaScriptを使用してURLを取得し、それは静的なURLであるように見えた明確にあなたの質問を読んだ後

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

以下のようなAjaxの形式にエンコードし、要求に送信する前にURLを準備する必要がありますあなたは以下のようにすることができます

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

本当にリクエストを受け取りますか? get要求はキャッシュされた時間のほとんどであるからです。 Firebugコンソールにレスポンスオブジェクトを記録し、オブジェクトを調べて詳細を調べます。応答がないので、サーバーは要求したものを送信しませんでした。

+0

ありがとうDeeptechtons –

+0

@Nikhilそうでした。私はそれが動作するまで休んでいません:D btw回答があれば、下のチェックマークをクリックしてください。 – Deeptechtons

+0

それはうまくいくが、サーバーからの応答は得られなかった。私が使用したコードは上記で見つけることができます。 ブラウザでurlを使用すると、ブラウザのXMLレスポンスが得られます。 しかし、Ajaxで使用しているうちに応答がありません 助けてください –

1

私はXMLHttpRequestsをsolrにも取り組んでいます。私は同じ問題のように思えます。私もこれでかなり新しいです。しかし、私の問題はオリジンポリシーと同じです。この問題が発生した場合、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

関連する問題