getDataAsJSON()在PHP中是一个未定义的函数,但许多解释如何使用JSONP的网站都说要使用它

getDataAsJSON() is an undefined function in PHP, but many of the websites explaining how to use JSONP say to use it

本文关键字:JSONP 何使用 解释 网站 许多 PHP getDataAsJSON 函数 未定义 一个      更新时间:2023-09-26

Javascript Ajax:

<script type="text/javascript" src="http://www.MyFirstDomain.com/jquery.js"></script>
<script type="text/javascript">
$(document).ready( function () {
    var referrer = document.referrer;
    var currentpage = $(location).attr('href');
    var data_object = {
        'ref':      referrer,
        'curpg':    currentpage,
        'shizz1e':  '21'
    };
    $.ajax({
        'dataType': 'jsonp',
        'jsonp': 'jsonp_callback',
        'url': "http://www.myOtherDomain.com/ajaxreceiver.php",
        'data': data_object
    });
});

PHP:

<?php
$data = getDataAsJSON($_GET['curpg']);
echo $data;
?>

我试图将一些变量从一台服务器上的Javascript发送到另一台服务器的PHP。我使用Ajax和JSONP(围绕同源策略工作)。我曾经尝试理解JSONP的网站说过,使用getDataAsJSON()来获取PHP中的JSON,但这显然不是一个真正的函数。我做错了吗?

在PHP中,您可以使用json_decode。

PHP没有名为getDataAsJSON的函数。THat可能是某人编写的自定义函数。

函数json_decode创建json字符串的一个对象。所以你将无法回显它,因为它会给你一个错误。您可以使用print_r($data)来获取对象的值

getDataAsJSON不存在。但是,您可以加载这样的JSON文件:

json_decode(file_get_contents($url));

您可能希望将json_decode的第二个参数(将对象转换为关联数组)设置为true,这样您就可以像访问数组一样访问解码的对象。

json_decode()返回一个具有属性的新STDClass对象。失败时为NULL。

json_encode()返回一个包含这些json属性的字符串。

此外,您应该检查函数是否返回了有效的json对象/字符串或NULL。所以,使用一些基本的验证对你来说是件好事。

我更喜欢使用var_dump()来跟踪对象。

//define getDataAsJson():
function getDataAsJson($param) {
  $ary = array(
    "symbol" => $param || 'IBM',
    "price" => "199.0"
  );
  return json_encode($ary);
}