0

私は次のjqueryコードを持っています:

$(document).ready(function() 
{
    $('button').click(function() 
    {
        $.getJSON('http://world.needforspeed.com/SpeedAPI/ws/game/nfsw/server/status?output=json', function(json)
        {
            alert("Entered getJSON");

            $("#output").append("working...");            
            if(json.status.indexOf("success")===0)
            {
                alert("success");
                $.each(json.results, function(i, data) 
                {
                    $("#output").append(data.text);
                });
            }else
            {
                alert("Failed to load url");
            }
        });
    });
});

URLから取得されたjsonは次のようになります。

{"worldServerStatus": {
 "customMessage": "",
 "lastChangedDate":  {
  "date": 31,
  "day": 4,
  "hours": 17,
  "minutes": 48,
  "month": 4,
  "nanos": 0,
  "seconds": 32,
  "time": 1338486512000,
  "timezoneOffset": 0,
  "year": 112
 },
 "localizedMessage": "The servers are currently up and running.",
 "message": "ALL_SYSTEMS_GO",
 "status": "UP"
}}

私のjqueryは$.getJSON関数の入力を拒否するだけで、「eneteredgetJSON」アラートは発生しません。

なにが問題ですか?

解決しました。皆さん、ありがとうございました :)

4

3 に答える 3

3

コンソールを確認しましたか?access-control-origin エラーが発生している可能性があります

jQuery.getJSON - Access-Control-Allow-Origin の問題

于 2012-06-11T13:39:38.203 に答える
1

オリジン ポリシーが同じであるため、別のドメインがCORSをサポートしていない限り、JSON をフェッチすることはできません。

API はjsonpをサポートしていますか?

于 2012-06-11T13:40:19.830 に答える
0

私はあなたがこれを行うことができるとは思わない. クロスドメイン ajax リクエストの場合、API プロバイダーは jsonp を使用する必要があります。できることは、リクエスト用のphpファイルを作成することです。ファイル request.php を呼び出しましょう

<?php   
/* gets the data from a URL */
function get_data($url)
{
  $ch = curl_init();
  $timeout = 5;
  curl_setopt($ch,CURLOPT_URL,$url);
  curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
  $data = curl_exec($ch);
  curl_close($ch);
  return $data;
}

$query = $_SERVER['QUERY_STRING'];
$url = ('http://world.needforspeed.com/SpeedAPI/ws/game/nfsw/server/status?'.$query);

echo get_data($url);

?>

次に、あなたのJavaScriptで

$.getJSON('http://myserver.com/request.php?output=json', function(json) 
于 2012-06-11T13:46:03.130 に答える