即使firebug显示响应确定,jQuery onsuccess也无法正常工作

时间:2011-04-18 09:14:35

标签: jquery ajax jsonp

我在$ .ajax调用的onsuccess函数中显示一个警告框时遇到问题。我检查了firebug,我确实收到了json格式的响应,但由于某种原因警报即将到来,我也无法访问console.log(jsonp)。以下是代码:

$.ajax({

        type: "GET",
        url: "http://maps.googleapis.com/maps/api/directions/json?origin=ajax&destination=toronto&region=ca&avoid=tolls&sensor=false",
        dataType: "jsonp",
        success: function(jsonp) {
              alert(jsonp);
            console.log(jsonp);

        }
    });

});

1 个答案:

答案 0 :(得分:1)

阅读此内容清楚地写在:http://api.jquery.com/jQuery.ajax/

  

默认情况下,发送所有请求   异步(即设置为   默认为true)。如果你需要   同步请求,设置此选项   为假。跨域请求和   dataType:“jsonp”请求没有   支持同步操作。注意   同步请求可能   暂时锁定浏览器,   禁用任何操作时   请求已激活。

还提到了一件事

  

“jsonp”:使用加载JSON块   JSONP。会添加一个额外的“?callback =?”   到URL的末尾以指定   回调。

     

如果您想强制使用跨域   请求(如JSONP)相同   域,设置crossDomain的值   为真。例如,这允许   服务器端重定向到另一个   域

参考链接:

PHP-JSONP

CROSS DOMAIN DATA with jsonp

JavaScript: How do I create JSONP?