【问题标题】:jsonp callback problemjsonp回调问题
【发布时间】:2011-02-09 06:39:27
【问题描述】:

我正在尝试以下代码来检索客户端 ip,它工作正常

<script type="text/javascript">  
    function getip(json) {
        var ip = json.ip; // alerts the client ip address
        alert(ip);
    }
</script>
<script type="text/javascript" src="http://jsonip.appspot.com/?callback=getip"></script>

但是当我用$.ajax 尝试它时,它什么也没做......

    $.ajax({
        type: "GET",
        url: 'http://jsonip.appspot.com/?callback=getip',
        dataType: "jsonp",            
        success: function getip(json) {
            alert("sucess");
            var ip = json.ip;
            alert(ip);
        }

    });

});

请帮忙

【问题讨论】:

    标签: jquery ajax json jsonp


    【解决方案1】:
    $.ajax({
        type: "GET",
        url: "http://jsonip.appspot.com/?callback=?",
        //                                        ^
        // ---- note the ? symbol ----------------|
        // jQuery is responsible for replacing this symbol
        // with the name of the auto generated callback fn
        dataType: "jsonp",
        success: function(json) {
            var ip = json.ip;
            alert(ip);
        }
    });
    

    jsFiddle demo 在这里。

    【讨论】:

      【解决方案2】:

      您看到通过网络传递的 url 了吗?我建议你试试 { jsonp: false, jsonpCallback: "callbackName" }。这样可以避免jquery自动添加回调函数。

      您是否也将跨域设置为 true。?

      【讨论】:

        【解决方案3】:

        你不需要在url中添加任何callback参数。

        如果您逐步尝试http://terrasus.com/detail.jsp?articleID=396 文章,它将正常工作。如果您生成 jsonp 响应,您应该获取回调值并将其动态设置为您的响应。这篇文章有详细的解释。

        【讨论】:

        • 尝试在您的答案中包含链接的内容。并非所有用户都可以使用所有外部链接。
        • 我不想在这里写所有的东西。我很懒。我只是想分享解决方案
        猜你喜欢
        • 2013-04-29
        • 2014-12-20
        • 2018-01-08
        • 2013-07-14
        • 1970-01-01
        • 2013-10-17
        • 2014-12-31
        • 2013-09-12
        • 1970-01-01
        相关资源
        最近更新 更多