2014-09-24 55 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)

相关问题