为了账号安全,请及时绑定邮箱和手机立即绑定

请教关于简单的jQuery、PHP和JSONP示例?

/ 猿问

请教关于简单的jQuery、PHP和JSONP示例?

PHP
SMILET 2019-10-23 12:11:23

简单的jQuery、PHP和JSONP示例?

我面临着同样的政策问题,通过对这个问题的研究,我发现我的特定项目最好的方法是使用JSONP来进行跨源请求。

我一直在读这篇来自IBM的关于JSONP的文章然而,我对正在发生的事情并不十分清楚。

我在这里所要求的只是一个简单的jQuery>PHPJSONP请求(或任何术语;)-如下所示(很明显,这是不正确的,只是为了让你了解我想要实现的目标:):

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,这也有效吗?



查看完整描述

3 回答

?
慕慕0277861

当在外部域上使用$.getJSON时,它会自动执行JSONP请求,例如推特滑块

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

因此,您的示例是:这是经过测试和工作的(您可以转到http:/Smallcoders.com/javascriptdevenEnvironment.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'}" . ')';

      }?>

注意?回调=?和+res.fulname



查看完整回答
反对 回复 2019-10-23
?
三国纷争

首先,您不能使用JSONP发出POST请求。

基本上正在发生的是动态插入脚本标记来加载数据。因此,只有GET请求是可能的。

此外,您的数据必须包装在回调函数中,该函数在请求完成后调用,以便将数据加载到变量中。

这个过程是由jQuery为您自动化的。但是,仅仅在外部域上使用$.getJSON并不总是有效的。我凭个人经验就知道了。

最好的方法是添加&回调=?给你,呃。

在服务器端,您必须确保数据被包装在这个回调函数中。

伊。

echo $_GET['callback'] . '(' . $data . ')';

编辑:

还没有足够的代表来评论利亚姆的回答,因此这里的解决方案。

替换利亚姆的线路

 echo "{'fullname' : 'Jeff Hansen'}";

带着

 echo $_GET['callback'] . '(' . "{'fullname' : 'Jeff Hansen'}" . ')';



查看完整回答
反对 回复 2019-10-23
?
达令说

更多建议

JavaScript:

$.ajax({
        url: "http://FullUrl",
        dataType: 'jsonp',
        success: function (data) {

            //Data from the server in the in the variable "data"
            //In the form of an array

        }});

PHP回调:

<?php

$array = array(
     '0' => array('fullName' => 'Meni Samet', 'fullAdress' => 'New York, NY'),
     '1' => array('fullName' => 'Test 2', 'fullAdress' => 'Paris'),);if(isset ($_GET['callback'])){
    header("Content-Type: application/json");

    echo $_GET['callback']."(".json_encode($array).")";}?>



查看完整回答
反对 回复 2019-10-23

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信