0

getJSON を php 配列でテストしていますが、機能していません。誰かチェックしてもらえますか? getJSON url https://graph.facebook.com/zombiesを使用して html コードをテストすると、動作しているため、問題は php コードにあると感じています。

私のarray.phpで

<?php

 header("Content-type: text/javascript");

 $arr = array(

            "name" => "Tim",
            "age" => "28"     );

echo json_encode($arr);

?>

私の test.html で:

  <html>
  <head>
    <script type='text/javascript' src='jquery.js'></script>
  </head>
  <body>

    <script type='text/javascript'>

    $(document).ready(function() {
         $.getJSON('array.php', function(data) {        
            if(data) {
            document.write(data.age);       
            }
            else {
            alert('error');
            }
        });
    }); 
    </script>

   </body>
   </html>
4

3 に答える 3

3

変化する

header("Content-type: text/javascript");

header('Content-Type: application/json');

JSONP の場合

header('Content-Type: application/javascript');
于 2012-11-24T09:32:22.130 に答える
1

header("Content-type: text/javascript");

送信しているのは JSON ですが、JavaScript を送信していることをブラウザに伝えています。JSON のコンテンツ タイプはapplication/json.

それを修正すると、 Same Origin Policyに違反していなければ、機能するはずです。クロスドメイン リクエストを行う場合のオプションは次のとおりです。

  • ajax と JSON を使用せず、JSON-Pを使用してください。

  • CORSを使用しますが、サーバーがドキュメントのオリジンを許可し、ブラウザーがそれをサポートしている必要があります (最新のものはサポートしていますが、古いものはサポートしていません)。

  • YQL をクロスドメイン プロキシとして使用します。

于 2012-11-24T09:32:31.397 に答える
1

コンテンツ タイプを

application/json

したがって、jQueryはjsonデータとして解釈します

于 2012-11-24T09:34:42.860 に答える