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 有效之前,设置正确的标头并不重要。我从您的示例中的 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 回答
1

我找到了一个解释 3rd 方 JSON 请求的解释,这对我有很大帮助。向下滚动到“从第三方服务器检索 JSON”部分,该部分位于页面下方约 2/3 处。感谢 MetalFrog 的帮助。

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

于 2012-07-05T14:27:16.967 回答