javascript – 有jQuery,ajax和jsonp的问题

前端之家收集整理的这篇文章主要介绍了javascript – 有jQuery,ajax和jsonp的问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在使用jsonp和ajax来查询在另一台服务器上用java编写的Web服务.我使用以下jquery命令:

$.ajax({
    type: "GET",url: wsUrl,data: {},dataType: "jsonp",complete: sites_return,crossDomain: true,jsonpCallback: "sites_return"
});


function jsonp_callback(data) {
    console.log(data);
}

function sites_return(data) {
    console.log(data);
}

所以我的问题是在查询完成后调用一个名为jsonp_callback的函数.我可以清楚地看到json格式的字符串:

{"listEntries":["ELEM1","ELEM2","ELEM3",etc...]}

但是在完成事件触发后调用函数sites_return之后,我得到以下内容

Object { readyState=4,status=200,statusText="parsererror"}

同样作为参考,在sites_return函数之前调用jsonp_callback函数.此外,如果我从代码中取出jsonp_callback函数,我得到一个投诉,即firebug没有实现该函数.

我的问题三折:
1)我在jquery方面做错了什么?
2)为什么json在jsonp_callback中正确解析而不是sites_return?
3)我该怎么做才能解决这些问题?

编辑

一些新的发展.根据这里的评论是一些额外的信息.

以下是http响应的内容

jsonp_callback({"listEntries":["ELEM1","ELEM3"]})

我假设这是调用jsonp_callback的原因.我想现在我的问题变成了,有没有办法控制它(假设我无法访问后端Web服务).

最佳答案
希望这有助于〜

var url = "http://maps.google.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false";
var address = "1600+Amphitheatre+Parkway";
var apiKey = "+Mountain+View,+CA";

$.getJSON("http://maps.google.com/maps/geo?q="+ address+"&key="+apiKey+"&sensor=false&output=json&callback=?",function(data,textStatus){
     console.log(data);
  });

猜你在找的jQuery相关文章