2014-09-24 52 views
2

我有一個包含UPC代碼的對象,我遍歷通過他們,通過擊打JSONP請求的每個產品信息的服務器:jQuery的JSONP請求沒有得到一個回調參數添加適當

$.each(obj, function(key, val){ 
    var requestUrl = 'https://domain.com/products/' + val.upcCode + '/prices'; 
    $.ajax({ 
     url : requestUrl, 
     dataType : 'jsonp', 
     success : function(responseData){ 
      console.log(responseData); 
     } 
    }); 
}); 

該作品除非第一個請求沒有正確添加回調參數。所有其他請求得到

&callback=jQuery111108732157719514818_1411587984724&_=1411587984725 

(或類似)添加數據,但首先是隻得到

&true=jsonp&_=1411587984723 

所以服務器沒有得到一個回調,只是返回JSON。有沒有人看過jQuery這樣做?

+0

你確定它的jQuery搞砸了,而不是一些服務器端重定向重新編寫的jQuery生成的網址是什麼? – 2014-09-24 20:11:28

+0

這當然是一種可能性,服務器維護者確實喜歡他們的重定向。嗯。好吧,我在瀏覽器中粘貼了錯誤的url,並糾正了回調,它沒有重定向,並且也正確地返回了jsonp。 – axlotl 2014-09-24 20:14:54

回答

2

答案似乎是,我做了一個單獨的,早期的JSONP請求,其中我手動jsonpCallback值設置爲「JSONP」:

該回調別的和第二JSONP請求工作
$.ajax({ 
    url : '/logic/under29.js', 
    dataType : 'jsonp', 
    jsonpCallback : 'jsonp', 
    success : function(response){ 
     console.log(response); 
     logic = response; 
    } 
}); 

名稱。將其命名爲「jsonp」,就會出現上述問題。

(jQuery的1.11.1)

相關問題