0

私はJavaScriptの使用経験はある程度ありますが、jQueryとJSONの扱いには経験がありません。

データベースからデータを取得するツールを作成して、データを表示する新しい方法を作成しようとしています。

ブラウザに次のURLを入力すると、ページに表示されるJSONとして識別した応答が返されます。

**URL:** http://osuc.biosci.ohio-state.edu/hymDB/OJ_Break.getSpmInfo?cuid=OSUM%20110110&callback=test

**Response:** test({"spmInfo":{"cuid":"OSUM 110110","alt_ids":[],"loc_name":"Mad River near State Route.....

私はデータベースからの情報を表示する単純なものを構築しようと遊んでいましたが、これまでのところ、自分のページに関連するものを表示させることすらできていません。どんな助けやアドバイスも大歓迎です。

これが私のコードです:

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="json.js"></script>
<script type="text/javascript" src="getdb.js"></script>
</head>
<body>
<button type="button" onclick="getinfo()">click</button>
<h6 id="objinfo"></h6>
</body>
</html>

JavaScript:

function getinfo(){
    $.getJSON('http://osuc.biosci.ohio-state.edu/hymDB/OJ_Break.getSpmInfo?cuid=OSUM%20110110&callback=test', function(data) {
  $('#objinfo').html(JSON.stringify(data));
});}

これがJSFiddleリンクへのリンクです

前もって感謝します。

4

2 に答える 2

1

非常に役立つサードパーティの JSON リクエストの作成に関する説明を見つけました。ページの約 2/3 にある「サード パーティ サーバーからの JSON の取得」セクションまでスクロールします。MetalFrog の助けに感謝します。

http://www.hunlock.com/blogs/Mastering_JSON_%28_JavaScript_Object_Notation_%29#quickIDX9

于 2012-07-05T14:27:16.967 に答える
1

JSON が有効になるまでは、正しいヘッダーを設定しても問題ないことに注意してください。例の URL から応答を取得し、JSONLint を実行して検証しました。

http://jsonlint.com/


データの配列を JSON 応答としてダンプするために使用する単純な関数を次に示します。

/**
 * @param $content Array of data to json_encode
 * @param bool $nocache If true, sets a no-cache header
 */
public function jsonOutput($content,$nocache = false)
{
    if( $nocache === true )
        header('Cache-Control: no-cache, must-revalidate');

    header('Content-type: application/json');
    print json_encode($content);
    exit();
}
于 2012-06-29T19:39:51.453 に答える