小编典典

简单的jQuery,PHP和JSONP示例?

ajax

我面临着同源政策问题,并且通过研究该主题,我发现对我的特定项目而言,最好的方法是使用JSONP进行跨域请求。

我一直在阅读IBM的有关JSONP的这篇文章,但是我对所发生的事情并不十分了解。

我在这里要求的只是一个简单的jQuery> PHP JSONP请求(或任何可能的术语;))-诸如此类
(显然这是不正确的,只是为了让您了解我要实现的目标:))

jQuery的:

$.post('http://MySite.com/MyHandler.php',{firstname:'Jeff'},function(res){
    alert('Your name is '+res);
});

PHP:

<?php
  $fname = $_POST['firstname'];
  if($fname=='Jeff')
  {
    echo 'Jeff Hansen';
  }
?>

我将如何将其转换为正确的JSONP请求?而且,如果我将HTML存储在要返回的结果中,那也行得通吗?


阅读 273

收藏
2020-07-26

共1个答案

小编典典

当您在外部域上使用$
.getJSON时,它会自动处理JSONP请求,例如,我在这里的tweet滑块

如果查看源代码,可以看到我正在使用.getJSON调用Twitter API。

因此,您的示例将是:这是经过测试和工作的(您可以访问http://smallcoders.com/javascriptdevenvironment.html进行查看)

//JAVASCRIPT

$.getJSON('http://www.write-about-property.com/jsonp.php?callback=?','firstname=Jeff',function(res){
    alert('Your name is '+res.fullname);
});

//SERVER SIDE
  <?php
 $fname = $_GET['firstname'];
      if($fname=='Jeff')
      {
          //header("Content-Type: application/json");
         echo $_GET['callback'] . '(' . "{'fullname' : 'Jeff Hansen'}" . ')';

      }
?>

注意?callback =?和+ res.fullname

2020-07-26