2011-08-04 12 views
0

これは愚かな監視ですが、jQueryの 'getJSON'関数をどのように動作させるかを理解できません。テスト目的のために、私は次のように設定ディレクトリを有する:jqueryを使ってjsonデータを読むのに問題があります

test.html 
js/ 
    jquery-1.6.2.min.js 
    test.js 
ajax/ 
    test.json 

およびtest.html<head>でIはgetJSON関数の最初の試験として線

<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script> 
<script type="text/javascript" src="js/test.js"></script> 

を持って、次のようにtest.js読み取り:

$(document).ready(function() { 
    $.getJSON('ajax/test.json', function(data) { 
     alert('Success!'); 
    }); 
} 

ただし、 'test.html'が読み込まれても何も起こりません。私は 'ajax/test.json'のパス指定が問題だと感じていますが、なぜそれがわかりません。

EDIT:中括弧には悪いですが、実際にはコード内に問題はありません。誤ってコピーして貼り付けただけです。私はChrome Developer Toolsを開きましたが、XMLHttpRequestエラーが表示されます。「Origin-nullはAccess-Control-Allow-Originによって許可されていません。

EDIT 2:それは厄介なものです。それはChrome issueのように見えます。 Safariで正常に動作します。回避策として、基本ディレクトリにpython -m SimpleHTTPServerを起動し、localhost:8000/test.htmlのページにアクセスしてください。その場合はChromeが正常に動作します。

+0

FirebugまたはChromeデベロッパーツールなど、ご使用のブラウザに対応するものを開きます。 [ネット]タブを見て、404を取得しているかどうかを確認します。 JSエラーがあるかどうかを調べるには、コンソールを見てください。 – Quentin

+0

ありがとう..私はちょうどやったし、説明のXMLHttpRequestエラーがあるように見えます: "Originのnullは、Access-Control-Allow-Originによって許可されていません"。これは何を意味するのでしょうか? – macaroon5

答えて

0

ですねあなたがfiから直接これを実行しようとしているようにシステム。 WebサーバーをインストールしてHTTP経由でページを利用できるようにして、代わりにそのページを使用します。

ローカルWebページには、HTTP Webページとは異なるセキュリティルールがあります。

+0

ああ、ありがとう – macaroon5

3

あなたはgetJSONコールバック関数とready機能に正しくブラケットをクローズする必要があります。

$(document).ready(function() { 
    $.getJSON('ajax/test.json', function(data) { 
     alert('Success!'); 
    }); 
}); 
+0

元の質問のパスは正しいです。 – Quentin

+0

ああ、はい。あなたが正しいです。私は何とか、JSがルートディレクトリのHTMLファイルに含まれているだけなのかもしれないという事実を考えていませんでした。 –

+0

私のbは元の質問のタイプミスでした..私は今更新しました – macaroon5

1

あなたのコード:

$.getJSON('ajax/test.json', function(data) { 
    alert('Success!'); 
); // you missed a curly brace here. that may be a problem 

正しいコード:

$.getJSON('ajax/test.json', function(data) { 
     alert('Success!'); 
}); 
+0

私の質問は入力ミスでした – macaroon5

関連する問題