0

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,但这显然不是一个真正的函数。我要解决这个问题了吗?

4

4 回答 4

1

在 PHP 中,您可以使用 json_decode。

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

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

于 2012-08-20T20:34:24.653 回答
0

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

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

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

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

于 2012-08-20T20:46:13.133 回答
0

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

json_decode(file_get_contents($url));

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

于 2012-08-20T20:48:21.250 回答
0
//define getDataAsJson():
function getDataAsJson($param) {
  $ary = array(
    "symbol" => $param || 'IBM',
    "price" => "199.0"
  );
  return json_encode($ary);
}
于 2013-07-24T22:39:45.417 回答