ajax跨域获取json数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax跨域获取json数据相关的知识,希望对你有一定的参考价值。

一.客户端代码(html+js) Basic/jsonp_test.html

<!DOCTYPE html>
<html lang="zh-cn">
<head>
	<meta charset="UTF-8">
	<title>jsonp</title>
	<script src="js/jquery-1.11.2.js"></script>
    <script type="text/javascript" src="js/jquery.cookie.js"></script>
</head>
<body>
<form class="test_jsonp">
	 <input type="text"  name="loginuser"/>
	 <input type="text"  name="loginpass" />
	 <button type="button" class="json_button">提交</button>
</form>
</body>
</html>
<script type="text/javascript">  
$(function(){
	/* 第一种方法  远程跨域请求 使用jsonp协议*/
	
	$(".json_button").on("click",function(){
		alert($(".test_jsonp").serialize());
		 $.ajax({
			 "url" : "http://www.liubf.com/Bang/post_jsonp.php",
			  "type" :"GET",
			  "dataType": "jsonp",
			  "data": {
				  "loginuser" : $("input[name=loginuser]").val(),
				  "loginpass" : $("input[name=loginpass]").val()
			  }, 
			  "success":function(response,status,xhr){
		         for (var i  in response){
		        	 alert(i  +  "---" +response[i]);
		         }
		       },
		       "error":function(xhr,errorText,errorStatus){
		       	  alert("ajax访问错误:" + xhr.status + " " +xhr.statusText ); 
		       }   			 
		 });
	});
	
	/* 第二种方法   远程跨域请求 使用?callback协议*/
  /*
	$(".json_button").on("click",function(){
		alert($(".test_jsonp").serialize());
		 $.ajax({
			 "url" : "http://www.liubf.com/Bang/post_jsonp.php?callback=?",
			  "type" :"GET",
			  "dataType": "json",
			  "data": {
				  "loginuser" : $("input[name=loginuser]").val(),
				  "loginpass" : $("input[name=loginpass]").val()
			  }, 
			  "success":function(response,status,xhr){
		         for (var i  in response){
		        	 alert(i  +  "---" +response[i]);
		         }
		       },
		       "error":function(xhr,errorText,errorStatus){
		       	  alert("ajax访问错误:" + xhr.status + " " +xhr.statusText ); 
		       }   			 
		 });
	});
	
*/
});  
</script>

二.服务器代码(php)


<?php
//远程跨域请求 必须以$_get接收
$arr = array("a" => 110 , "b" => 150 ,"c" =>130);
$_result = json_encode($arr);
$callback  = $_GET[‘callback‘];
echo $callback."($_result)";

?>


本文出自 “刘博方的博客” 博客,请务必保留此出处http://liubofang.blog.51cto.com/11162557/1859410

以上是关于ajax跨域获取json数据的主要内容,如果未能解决你的问题,请参考以下文章

ajax跨域获取json数据

ajax获取json数据及实现跨域请求

没有json-data的ajax跨域请求

AJAX 跨域请求 - JSONP获取JSON数据

AJAX 跨域请求 - JSONP获取JSON数据

AJAX 跨域请求 - JSONP获取JSON数据