【问题标题】:How do you use PHP and jquery get jsonp?如何使用PHP和jquery获取jsonp?
【发布时间】:2012-01-20 21:19:56
【问题描述】:

我有这个 PHP:

$response = 'success';
$response = json_encode($response);
echo $_GET['callback'] . '('.$response.')';

还有这个 jQuery:

$.ajax({url: "/*url*/?invite="+getinvite+"&api="+api, dataType:"jsonp", 
    success: function(response){/*do stuff*/}});

在我笔记本电脑上的 XAMPP 上,它运行良好。然后当我把它放在我的服务器上时,它给了我这个错误:Undefined index: callback。

为什么不让我设置$_GET['callback']?以及如何解决这个问题?

【问题讨论】:

    标签: php jquery get jsonp


    【解决方案1】:

    您没有设置一个名为“回调”的参数,因此它没有在 $_GET 变量中设置。

    您可以通过以下方式修复错误消息:

    $callback = "";
    if(array_key_exists('callback', $_GET) == TRUE){
        $callback = $_GET['callback'];
    }
    

    但是我认为您可能没有误解 jQuery 中的 .ajax 调用——成功时调用的 javascript 函数不会传递给服务器;它只保存在 jQuery 中。

    【讨论】:

      【解决方案2】:

      为了让您的 ajax 调用简单, 使用专门为 JSONP 响应设计的 getJson 方法。

      http://api.jquery.com/jQuery.getJSON/

      这将自动创建一个回调函数名称,该名称将作为参数传递给您的 jsonp api。 页面示例:

      $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",
        {
          tags: "cat",
          tagmode: "any",
          format: "json"
        },
        function(data) {
          $.each(data.items, function(i,item){
            $("<img/>").attr("src", item.media.m).appendTo("#images");
            if ( i == 3 ) return false;
          });
        });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-10
        • 2013-12-14
        • 2011-09-07
        • 1970-01-01
        • 2013-11-25
        • 2012-12-24
        • 1970-01-01
        相关资源
        最近更新 更多