这让我发疯了。我写了一个php api文件并将其存储在我的服务器上。当我直接运行 url 时,JSON 结果会完美地回显到屏幕上,没有问题。但是,当我尝试从另一个域(例如跨域(访问结果时,我无法显示值。屏幕仍然是空白的。我希望这是有道理的。我想知道下面的javascript调用是否有问题。这真的成了皇室的痛。
任何帮助将不胜感激。
下面的代码:
注意:JSON 结果的外观示例 { "名称": "约翰·多伊", "网址": "http://www.adomain.com", "创建":"这里的日期" }
<!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 ">
<html>
<head>
<title>API JSON Test</title>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function(){
var timeService = "http://api.MYDOMAIN.com/api.php?
key=abc&num=1&format=json&callback=?";
$.getJSON(timeService, function(data) {
$('showdata').html("<p>ulore="+data.name+" url="+data.url+" created="+data.created+"
</p>");
});
});
</script>
<div id="showdata"></div>
</body>
</html>
我真的很感激任何可以提供帮助的回应。这对我来说很奇怪。在我的远程服务器上,一切都很好。我已经成功地用 JSONP 编码了它并得到了有效的结果。但是,每次我尝试访问 JSONP 结果时 - 无论是从同一域还是通过跨域,屏幕都是空白的。我已经尝试了100万种不同的东西,并且已经在这里呆了几天了。我一直在阅读论坛等,似乎没有其他人遇到这种问题,没有达到我遇到的程度。请注意,下面是 JSONP 的样子:
?({"posts":[{"post":{"name":"Mike
Jones","url":"http://aweburl.com","timestamp":"2011-12-08 09:48:04"}}]});
对于我的生活,我无法弄清楚这一点。
选择器showdata
将匹配您想要<showdata>
#showdata
您可能应该使用开发人员插件或例如 Fiddler 收听浏览器发送的 HTTP 请求。通常,您会看到 HTTP 响应代码,这些代码可能会告诉您更多只是空白屏幕:)例如,可能是授权问题。
将 HTML 附加到结果时出现问题。
它应该是这样的:
$.getJSON(timeService, function(data) {
$('#showdata').html("<p>ulore="+data.name+" url="+data.url+" created="+data.created+"
</p>");
尝试使用此语法。.
谢谢
好的,我知道了。 我发现了问题。如果你们还记得我发布的 JSONP 结果......好吧,我的JavaScript代码是有缺陷的。经过一番检查,我更改为以下内容....
我的变量不正确。例如,我从data.url更改为date.post.url,它就像一个魅力。这几天我学到了很多东西。再次感谢您的所有帮助。:)
$.getJSON(timeService, function(data) {
$('#showdata').html("<p>ulore="+data.post.ulore+" url="+data.post.url+
"created="+data.post.created+"</p>");
});