我在$ .ajax调用的onsuccess函数中显示一个警告框时遇到问题。我检查了firebug,我确实收到了json格式的响应,但由于某种原因警报即将到来,我也无法访问console.log(jsonp)。以下是代码:
$.ajax({
type: "GET",
url: "http://maps.googleapis.com/maps/api/directions/json?origin=ajax&destination=toronto®ion=ca&avoid=tolls&sensor=false",
dataType: "jsonp",
success: function(jsonp) {
alert(jsonp);
console.log(jsonp);
}
});
});
答案 0 :(得分:1)
阅读此内容清楚地写在:http://api.jquery.com/jQuery.ajax/
默认情况下,发送所有请求 异步(即设置为 默认为true)。如果你需要 同步请求,设置此选项 为假。跨域请求和 dataType:“jsonp”请求没有 支持同步操作。注意 同步请求可能 暂时锁定浏览器, 禁用任何操作时 请求已激活。
还提到了一件事
“jsonp”:使用加载JSON块 JSONP。会添加一个额外的“?callback =?” 到URL的末尾以指定 回调。
如果您想强制使用跨域 请求(如JSONP)相同 域,设置crossDomain的值 为真。例如,这允许 服务器端重定向到另一个 域
参考链接: