JQuery AJAX вызов не работает с относительными и абсолютными URL - PullRequest
0 голосов
/ 11 ноября 2011

Это код, я не получаю никаких предупреждений, ошибок или успехов. Этот вызов ajax возвращает карту json, и эта карта динамически заполняется в параметрах select.

<body>
<script>
$(document).ready(function() {
        var selectValues;
        $.ajax({
              type: "GET",
              url: "http://59.163.254.24:4287/wap/retrieve/hanset/data/",
              data: APP_002,
              async: false,
              success: function(data) {
                selectValues = data;
                  alert("Details saved successfully!!!");
              },
                error:function (xhr, ajaxOptions, thrownError){
                    alert(xhr.status);
                    alert(thrownError);
                }
            });

            var $vendor = $('select.mobile-vendor');
            var $model = $('select.model');
            $vendor.change(
                          function() {
                              $model.empty().append(function() {
                                  var output = '';
                                  $.each(selectValues[$vendor.val()], function(key, value) {
                                      output += '<option>' + key + '</option>';
                                  });
                                  return output;
                              });
                          }).change();

            // bonus: how to access the download link
            $model.change(function() {
                $('a#download-link').attr('href', selectValues[$vendor.val()][$model.val()]).show();
            });
});
</script>
<div>
    <select class="mobile-vendor">
        <option value="motorola">Motorola</option>
        <option value="nokia">Nokia</option>
        <option value="android">Android</option>
    </select>
</div>
<div>

    <select class="model"></select>
    <a id="download-link"> Download </a>
</div>
</body>

Почему он не может отправить запрос на сервер, я использую журналы на стороне сервера. Там нет запроса.

URL страницы: http://59.163.254.24:4287/wap/download/

URL запроса Ajex: http://59.163.254.24:4287/wap/retrieve/hanset/data/

Я использовал /wap/retrieve/hanset/data/ и http://myhost.com/wap/retrieve/hanset/data/ в качестве параметра для url в методе ajax, оба не работают.

Ответы [ 3 ]

1 голос
/ 11 ноября 2011

Я думаю, проблема в том, что вы передаете APP_002 с помощью параметра данных, который в данном случае эквивалентен строке запроса.Просматривая ваши комментарии к OP, вы должны передать его непосредственно в URL, чтобы запрос правильно перенаправлялся на сервер, например:

    $.ajax({
          type: "GET",
          url: "http://59.163.254.24:4287/wap/retrieve/hanset/data/APP_002",
          async: false,
          // rest of your code...
   });

Пример:

http://59.163.254.24:4287/wap/retrieve/hanset/data/?APP_002 -> страница не найдена

http://59.163.254.24:4287/wap/retrieve/hanset/data/APP_002 -> JSON-ответ

1 голос
/ 11 ноября 2011

Код на вашем сервере (ссылка, которую вы указали) не совпадает с тем, который вы опубликовали в своем вопросе.В коде есть ошибка: SCRIPT1009: ожидаемый «}», означающий, что вы пропали без вести} из вашего javascript.

Строка:

// bonus: how to access the download link   

комментирует остальную часть javascript, поскольку вы не включили егов новый ряд.Этот комментарий JS включает в себя некоторый код и закрывающие скобки.Вы должны добавить новую строку после этого комментария.Вот почему у вас есть ошибка JavaScript, и ваш браузер никогда не вызывает сервер.

И ваш параметр должен быть 'APP_002', а не просто APP_002

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

0 голосов
/ 11 ноября 2011

На самом деле, нет проблем с кодом, который вы предоставили. Вот jsfiddle: http://jsfiddle.net/fHtcc/1/

Однако должна быть проблема с APP_002 (если она не определена) или Jquery не включен в страницу.

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