我正在尝试从URL中使用AJAX获取信息。此URL将返回JSON响应,但我在使此工作时遇到很多麻烦。我使用AJAX和JSON都相当新,所以我不确定我做错了什么。我没有收到任何输出。这是我到目前为止所做的:
HTML:
<!doctype html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content - Type">
<meta content ="utf-8" http-equiv="encoding">
<title>My Javascript Practice</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<noscript>JavaScript Must Be Enabled</noscript>
</head>
<body>
<div id="pub">Parent Div</div>
<script type="text/javascript" src="getList.js"></script>
</body>
</html>
JavaScript的:
var teamId = 883455;
var myUrl = "https://apps-internal.attributor.com/guardianapi/service/csadminservice/csteams/" + teamId + "?view=PUBLISHERS_FOR_TEAM";
$.get(myUrl, function(data){
$("#pub").html(data);
alert("load was performed");
});
答案 0 :(得分:2)
我建议使用这样的东西:
$.ajax({
type: 'GET',
url: myURL,
data: yourDAta,
dataType: 'jsonp',
success: function(jsonData) {
alert(jsonData);
},
error: function() {
alert('Error loading ');
}
});
请注意jsonp
超过json
答案 1 :(得分:0)
尝试使用getJSON()方法,如果您只想回复JSON响应。
.get,。load,.getJSON都只是在下面使用.ajax方法的扩展,如果你无法使扩展方法正常工作,有时候有助于直接使用.ajax()
基本上getJSON()方法就是这样:
$.ajax({
dataType: "json",
url: url,
data: data,
success: success
});
注意显式使用dataType:“json”。
由于这看起来像是跨域调用,因此如果您的端点支持,则需要使用jsonp (JSON with padding)或CORS (Cross-origin resource sharing)之类的内容。如果您的端点支持jsonp,您可以设置dataType:“jsonp”,但是服务器需要明确支持它,请参阅this post以获取有关jsonp的更多详细信息。
注意:您的服务器API 必须支持jsonp或CORS才能生效。
答案 2 :(得分:0)
只需添加json作为第三个参数,传递给回调的数据将是收到的json字符串的对象表示
这应该有用,
var teamId = 883455;
var myUrl = "https://apps-internal.attributor.com/guardianapi/service/csadminservice/csteams/" + teamId + "?view=PUBLISHERS_FOR_TEAM";
$.get(myUrl, function(data){
//data here will be object, should not used directly
$("#pub").html(data);
alert("load was performed");
}, 'json');
如果你在不同的域,你可以设置一个服务器端脚本来获取该数据,说它是一个名为api.php的php文件
<?php
$teamId = $_GET['teamId'];
//php.ini should allow url fopen
$response = file_get_contents("https://apps-internal.attributor.com/guardianapi/service/csadminservice/csteams/". $teamId ."?view=PUBLISHERS_FOR_TEAM");
echo $response;
?>
并在你的js文件中调用它
var teamId = 883455;
var myUrl = "path/to/api.php?teamId="+teamId;
$.get(myUrl, function(data){
//data here will be object, should not used directly
console.log(data);
}, 'json');