我对JSONP,AJAX和JQuery完全不熟悉。我正在尝试从给定的网址中检索某些数据,但是在alert("Success!")
之后没有到达getJSON
。我正在努力找出原因,或者下一步做什么。有什么建议吗?
(注意,我已在此问题中替换了xx的实际网址)
<!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 ">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Request json test</title>
<script src="http://code.jquery.com/jquery-1.5.js"></script>
<script src="json-jquery.js" type="text/javascript"></script>
<script src="json-jquery.js" type="text/javascript"></script>
<a href="json-data.php"></a>
<script>
$(document).ready(function(){
$.getJSON('http://xx.xxx.xxx.xx/getCourses.php?action=getUnpaid', function( data ) {
alert("Success!");
});
});
</script>
</head>
<body>
<a href="#" id="getdata-button">Get JSON Data</a>
<div id="showdata"></div>
</body>
</html>
答案 0 :(得分:2)
getJSON
方法不执行JSONP请求。要使用JSONP,您可以使用ajax
method,以便指定数据类型:
$(document).ready(function(){
$.ajax({
url: 'http://xx.xxx.xxx.xx/getCourses.php?action=getUnpaid',
dataType: 'jsonp',
success: function( data ) {
alert("Success!");
}
});
});
使用XMLHTTPRequest对象发出JSON请求,并受same origin policy的约束。引入JSONP来规避此问题,并使用script
标记加载资源。由于脚本可以从不同的域加载,因此它不受同一原始策略的约束。