Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何解析来自这个jsonp调用(jquery)的响应_Javascript_Jquery_Ajax_Json_Jsonp - Fatal编程技术网

Javascript 如何解析来自这个jsonp调用(jquery)的响应

Javascript 如何解析来自这个jsonp调用(jquery)的响应,javascript,jquery,ajax,json,jsonp,Javascript,Jquery,Ajax,Json,Jsonp,我正在尝试对外部站点(我无法控制)进行JSON调用,以便检索价格表。这是一个简单的电话: $.ajax({ url: 'http://www.external-site.com', type: 'GET', contentType: 'application/json', dataType: 'jsonp', data: {SelectedObjectId:"742",DeliveryOptionId:"2",CountryId:"4",SelectedExtensionId:"-1"}, su

我正在尝试对外部站点(我无法控制)进行JSON调用,以便检索价格表。这是一个简单的电话:

$.ajax({
url: 'http://www.external-site.com',
type: 'GET',
contentType: 'application/json',
dataType: 'jsonp',
data: {SelectedObjectId:"742",DeliveryOptionId:"2",CountryId:"4",SelectedExtensionId:"-1"},
success: function(response) { console.log('succes: ' + response); },
error: function(response) { console.log('error: ' + response); }
});
当我查看Chrome开发者工具时,我看到一个响应返回了我期望的所有信息。但是,不会返回“succes”状态,而是执行“error”函数,当我记录响应时,我得到的对象似乎与我在开发人员工具中看到的json响应不同。如何检索和处理开发人员工具中显示的响应?我对ajax调用缺乏经验,做了很多搜索和尝试不同的事情,但没有一个在这种情况下有效


编辑:我删除了JSFIDLE和指向外部站点的链接,以防止对其服务器造成潜在的压力。

多亏了Arun p Johny在上面的评论,我能够通过向服务器上的一个简单proxy.php发出ajax请求来解决这个问题,它反过来获取外部站点并返回我需要的数据


我使用本教程介绍如何设置它:

这是一个跨域请求。。看起来上述API既不支持CORS也不支持jsonpso。解决方案是将您的服务器用作代理,向您的服务器发出ajax请求,然后从服务器请求远程数据,并将远程请求返回的值返回给客户端。感谢您为我指明了这个方向。不幸的是,Chrome没有指出这个跨域问题,但这是我问题的原因,这是有道理的。我将尝试代理方法,谢谢!