getJSON无法正常工作(初学者)

时间:2014-07-26 13:40:59

标签: jquery ajax json jsonp

我对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> 

1 个答案:

答案 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标记加载资源。由于脚本可以从不同的域加载,因此它不受同一原始策略的约束。