Jquery ajax调用不使用相对和绝对URL

时间:2011-11-11 12:25:32

标签: ajax jquery jquery-mobile

这是代码,我没有得到任何警告,错误或成功。该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>

为什么它不能将请求发送到服务器,我在服务器端使用日志。没有请求。

页面网址:http://59.163.254.24:4287/wap/download/

Ajex请求网址:http://59.163.254.24:4287/wap/retrieve/hanset/data/

我在ajax方法中使用了/wap/retrieve/hanset/data/http://myhost.com/wap/retrieve/hanset/data/作为url的参数,两者都不起作用。

3 个答案:

答案 0 :(得分:1)

您服务器上的代码(您提供的链接)与您在问题中发布的代码不同。代码有错误:SCRIPT1009:从你的javascript预期'}'意味着你缺少}。

行:

// bonus: how to access the download link   

注释掉javascript的其余部分,因为你没有将它切换到新行。这个评论js包括一些代码和结束括号。您应该在此评论后添加换行符。 这就是为什么你有javascript错误而你的浏览器从不调用服务器。

您的参数应为'APP_002',而不仅仅是APP_002

当您解决此问题时,您可能会提出请求,但如果没有,我们可以在您执行此操作时检查是否存在任何其他错误。

答案 1 :(得分:1)

我认为问题是你使用data参数传递APP_002,在本例中它与querystring相同。查看您对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 - &gt;页面未找到

http://59.163.254.24:4287/wap/retrieve/hanset/data/APP_002 - &gt; JSON响应

答案 2 :(得分:0)

实际上,您提供的代码没有问题。 这是jsfiddle: http://jsfiddle.net/fHtcc/1/

但是,APP_002必定存在问题(如果没有定义的话),或者页面中不包含Jquery。