【发布时间】:2012-11-10 09:22:37
【问题描述】:
我正在尝试构建一个移动应用程序,它将获取 json 数据,这些数据将从 mysql 数据库的 php 查询中输出。这是我第一次这样做,所以只是尝试一个简单的例子来让事情发挥作用。在同一个域上一切似乎都很好,但是我在让 json-p 用于跨域提取时遇到问题。相同的域代码是:
<html>
<head>
<title>the title</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$.getJSON('example.json', function(staff) {
document.write(staff.name);
});
});
</script>
</head>
<body>
</body>
</html>
效果很好,但是当我将 example.json 移动到另一个域并进行测试时,它不再起作用。我添加了 ?callback=?正如我在各种教程中所读到的那样,到 url 的末尾,但它没有加载任何内容。将一行更改为:
$.getJSON('http://www.knoxyouthgroup.org/example.json?callback=?', function(staff) {
不知道从这里去哪里,有点碰壁。很抱歉这个新手问题,但任何帮助将不胜感激!
我们的最终目标是使用我们托管的 json 数据构建一个移动应用程序。数据将非常简单且最少,您可以自己托管吗?我一直在阅读有关 REST 服务等的信息,但不确定这是否只是我可以编写一个 php 脚本并将其转储到 json 并称之为一天的东西?
谢谢大家!
【问题讨论】:
-
您是否尝试过使用 firebug 并检查请求和响应标头?
-
如果您在修改
getJSON()-line 后尝试使用本地 json 文件执行该示例,该示例是否仍然有效? -
感谢 cmets 伙计们。我添加了 ?callback=?到本地示例,它也停止工作。这是否意味着回调没有正确完成?
-
好主意@papirtiger。当我这样做时,GET 上的状态显示 301 Moved Permanently。你知道这意味着什么,或者如何解决吗?
-
这真的很难......任何帮助都会很棒!该脚本在本地调用时工作得很好,甚至在调用 Twitter 时也可以工作,但是对我自己的 json 的任何调用,跨域都不起作用。我错过了什么?
标签: javascript json jquery-mobile cross-domain jsonp