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

getDataAsJSON()在PHP中是一个未定义的函数,但许多解释如何使用JSONP的网站都说可以使用它,php,javascript,jquery,ajax,jsonp,Php,Javascript,Jquery,Ajax,Jsonp,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 = $(

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
    });
});

$(文档).ready(函数(){
var referer=document.referer;
var currentpage=$(位置).attr('href');
变量数据对象={
“ref”:推荐人,
“curpg”:当前页面,
‘shizz1e’:‘21’
};
$.ajax({
“数据类型”:“jsonp”,
“jsonp”:“jsonp_回调”,
“url”:“http://www.myOtherDomain.com/ajaxreceiver.php",
“数据”:数据对象
});
});

PHP:



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

在PHP中,您可以使用json\u解码

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

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

json_decode()
返回一个新的STDClass对象及其属性。失败时为空

json\u encode()
返回包含这些json属性的字符串

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


我更喜欢使用
var\u dump()
来跟踪对象。

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

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

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