我正在尝试构建一个移动应用程序,它将获取将从mysql数据库的php查询输出的json数据。这是我第一次这样做,所以只是尝试一个简单的例子让事情发挥作用。在同一个域上,一切似乎都很好,但是我遇到了让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并将其称为一天?
全部谢谢!
答案 0 :(得分:0)
JSONP与普通JSON的工作方式不同,客户端和服务都必须遵守规则才能工作:
客户端 使用JQuery.getJSON,指定“callback =?”通知JQuery你正在进行JSONP调用。请参阅http://api.jquery.com/jQuery.getJSON/
服务 服务必须通过使用回调函数包装响应JSON来正确处理JSONP调用。它应该以以下格式返回响应:
<callback-function> ( <JSON-payload> )
如果服务刚刚返回,则客户端无提示失败。
我怀疑您的服务不符合JSONP,重写它以处理本地(JSON)和远程(JSONP)调用。