我试图从网址获取json,但没有成功..
这是我的代码。我正在尝试使用jsonParse方法。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">-->
<link rel="stylesheet" href="<?php getBaseURL(); ?>style.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<div class="container-fluid">
<!--<div id="menu"></div>-->
<!--<img class="img-responsive" src="http://f1.haveeru.com.mv/photos/2014/08/0_14082524222_news.jpg" />
<img src="http://f1.haveeru.com.mv/dhivehi/images/haveeru_logo_m.jpg" />-->
<div id="demo"></div>
</div>
<script language="javascript">
var url = "http://api.haveeru.com.mv/articles/read/160917";
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var myArr = JSON.parse(xmlhttp.responseText);
myFunction(myArr);
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
function myFunction(arr) {
var out = "";
out += arr.heading;
}
alert(out);
}
</script>
</body>
它甚至没有提醒任何事情......
任何帮助都会受到影响..谢谢
答案 0 :(得分:2)
您的代码存在多个问题
myFunction
定义查看myFunction
的定义,您可以看到需要移除的不需要的右括号。
您已使用new XMLHttpRequest();
声明xmlhttp对象。这在IE旧版本中会有所不同,因为您需要ActiveXObject
而不是此版本。此外,您已经将Jquery作为代码中的依赖项。然后,您可以使用$.ajax
或$.getJSON
代替此代码。您的代码将变得更具可读性。
您必须通过从请求的资源提供允许访问控制标头或在服务支持时使用jsonp来解决此问题。您可以通过
解决此问题一个。如果您有权限,请在ajax目标发送的响应上设置“Access-Control-Allow-Origin”标题。
湾如果目标服务支持
,则使用jsonp作为替代℃。如果以上都不起作用,您可以创建一个本地服务器端页面,通过您的ajax调用可以使用的本地路由读取和转发响应。
答案 1 :(得分:0)
1.我看不到xmlhttp = new XMLHttpRequest();
2.closing括号} in myfunction
答案 2 :(得分:0)
更好的做法是使用函数使用此函数创建XMLHttpRequest
或XDomainRequest
:
function getXDomainRequest() {
var xdr = null;
if (window.XDomainRequest) {
xdr = new XDomainRequest();
} else if (window.XMLHttpRequest) {
xdr = new XMLHttpRequest({mozSystem: true});
} else {
alert("Your browser does not support AJAX");
}
return xdr;
}