0

我的行为很奇怪,下面是对我页面的 jquery ajax 调用。

实际上,当我的页面正在加载时,它有两个下拉列表,它从下面调用两个下拉列表的 ajax 请求,因此两次调用同一页面。

  //alert("Test");
    var serviceReq = "http://localhost:2853/jsonproxy/jsonprxy.aspx"; 
    $.ajax({
        url: serviceReq,
        //type: "POST",
        contentType: "application/json; charset=utf-8",
        dataType: "jsonp",
        jsonpCallback: "airportXML",
        cache: true,
        success: function(data, textStatus, jqXHR) {
            var xmlDoc = $.parseXML(data);
            //alert("data" + data);
            x = xmlDoc.documentElement.childNodes;
            for (i = 0; i < x.length; i++) {
                document.write(x[i].nodeName);                        
                document.write("<br />");
            }

            //alert(oData);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            alert(textStatus + "---" + errorThrown);
        }
    });

问题是它永远不会成功,所以我永远不会得到这个 //alert("data" + data); 它总是出错,说“parsererror:airportxml 不是函数”,我可以保证返回的响应是完美的 JSON。

如果我评论这一行 jsonpCallback: "airportXML", Jquery give default callback ie jquery12121212_2323232 并且一切正常,那么奇怪的行为就会出现,但是我不希望这样,因为我希望对此有缓存调用

更奇怪的事情是,如果我在此调用之前放置 alert (//alert("Test");) 并且一切对我来说都很完美,而无需评论 jsonpCallback: "airportXML" 并且我得到了成功警报。

我认为我的电话没有得到充分的时间来完成。

请推荐!!

4

1 回答 1

0

我认为要解决上述问题,我需要使用

async: false,为我的第一个电话,以便我的下一个电话完成。

请就此提出建议。

编辑: JSNOP 跨域调用是否允许 sysncronous 调用?

谢谢。

于 2012-05-23T05:11:03.173 回答