这让我发疯了。我写了一个php api文件并将其存储在我的服务器上。当我直接运行url时,JSON结果完美地回显到屏幕上,没有任何问题。但是,当我尝试从另一个域(例如跨域)访问结果时,我无法获取要显示的值。屏幕仍然是空白的。我希望这是有道理的。我想知道下面的javascript调用是否有问题。这真的成了皇室的痛苦。
任何帮助将不胜感激。
以下代码:
注意: // JSON结果的示例 { “名字”:“John Doe”, “url”:“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"}}]});
对于我的生活,我无法弄清楚这一点。
答案 0 :(得分:0)
选择器showdata
将匹配您想要<showdata>
#showdata
答案 1 :(得分:0)
你应该听一下浏览器使用开发者插件发送的HTTP请求,例如Fiddler。通常你会看到HTTP响应代码可能会告诉你更多只是一个空白的屏幕:)例如,可能是授权问题。
答案 2 :(得分:0)
在结果中附加HTML存在问题。
它应该是这样的:
$.getJSON(timeService, function(data) {
$('#showdata').html("<p>ulore="+data.name+" url="+data.url+" created="+data.created+"
</p>");
尝试使用此语法..
由于
答案 3 :(得分:0)
好的,我明白了。我发现了这个问题。如果你们能记住我发布的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>");
});