在完成不同的APi呼叫后,如何进行API调用?

时间:2012-08-02 10:45:26

标签: javascript jquery ajax callback jsonp

转到http://starodaj.eu/apitest/index2.html查看我的代码

点击“显示可用性”。它应该填充输入。我有一个问题(可能是异步)所以我不能通过1次点击填充所有内容。当我更多次点击'ShowAvailability'时 - 一切正常。我该如何解决这个问题?

    function callAPI(yourAPIKey){
    var enquiry = "http://api.roomex.com/api/hotel?apiKey=" + yourAPIKey;
     //alert(enquiry);
     $.ajax({
         url: enquiry,
         type: 'GET',
         dataType: "jsonp",
         jsonp: "callback",
         jsonpCallback: "jsonpCallback2",
         complete: function (response, responseCode) {
         },
         success: function (json) {
             $.each(json.Contracts, function (index, contract) {
                // alert("Count before increament : " + Count);
                // alert(contract.ContractCode);
                 ContractsArray[Count] = contract.ContractCode;

                // alert("Count after increament : " + Count);
                // alert("ContractsArray[Count]: " + ContractsArray[Count]);
                 Count++;

             });
             for(var i = 0; i < Count; i++){
                 //alert("ContractsArray[" + i + "]: " + ContractsArray[i]);
                 getAvailability(yourAPIKey, ContractsArray[i], startDate, endDate);
                 getRates(yourAPIKey, ContractsArray[i], startDate, endDate);
                 //alert("Finish of ContractsArray[" + i + "]: " + ContractsArray[i]);
             }
         }
     });
    }

1 个答案:

答案 0 :(得分:1)

您的脚本会产生这些行的错误

jsonpCallback: "jsonpCallback3",
jsonpCallback: "jsonpCallback",
jsonpCallback: "jsonpCallback2",

当我删除它时,它只填充整个表格