Как я могу запросить URL с помощью AJAX - PullRequest
2 голосов
/ 19 мая 2011

Я новичок в этой области. Мне нужно выяснить, как сделать запрос на мой сервер Solr с помощью Ajax Как я могу дать URL (URL моего сервера Solr) в запросе Кто-нибудь знает, как с этим бороться? Как я могу сделать запрос по указанному ниже адресу

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();
    }

Это мой код, он всегда показывает "нет ответа"
Спасибо.

Ответы [ 3 ]

1 голос
/ 28 сентября 2012

Я только сейчас работаю над XMLHttpRequests, чтобы решить, и я застрял с тем, что кажется идентичной проблемой. Я тоже новичок в этом. Однако проблема для меня заключалась в той же политике происхождения . Firefox, кажется, дает очень мало отзывов, когда возникает эта проблема. По крайней мере, Chrome выдает сообщение об ошибке (большую часть времени?).

В Chrome вы можете обойти это, но только в целях разработки, запустив его с параметром командной строки '- disable-web-security' .

Мне еще предстоит найти хороший обходной путь для этой проблемы для Solr. В целом вы избегаете ограничения, используя только запросы с относительными путями, но , что кажется невозможным при выполнении запроса к другому порту .

Способы обхода политики (я еще не успел изучить это слишком много)

1 голос
/ 19 мая 2011

Вам нужно будет подготовить URL перед отправкой в ​​запросе, сначала получите URl с использованием javascript, а затем закодируйте его в формате ajax, как показано ниже

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 голосов
/ 26 февраля 2013
$.ajax({
   url: "url path",
   context: document.body
   }).done(function(data) {
      alert(data);
});

Этот тоже будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...