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を理解しようとして使用したWebサイトは、PHPでJSONを取得するためにgetDataAsJSON()を使用すると言っていますが、それは明らかに実際の関数ではありません。私はこれについて間違っていますか?

4

4 に答える 4

1

PHPでは、json_decodeを使用できます。

PHPには、getDataAsJSONという関数はありません。THatは、おそらく誰かが書いたカスタム関数です。

関数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));

オブジェクトを連想配列に変換するの 2 番目のパラメータjson_decodeを true に設定すると、デコードされたオブジェクトに配列であるかのようにアクセスできます。

于 2012-08-20T20:48:21.250 に答える