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)";

?>
时间: 2024-12-04 18:32:53

ajax跨域获取json数据的相关文章

IT忍者神龟之jQuery 使用 $.getJSON() 跨域获取 JSON 数据

假设在服务器上有文件 http://test.unmi.cc/json.php 文件,它的内容为: [代码 1] 01 02 03 04 05 06 07 08 09 10 <?php header('Content-type: application/json'); $user = array (     "name"  => "Unmi",     "blog" => "http://unmi.cc" )

AJAX跨域请求json数据的实现方法

这篇文章介绍了AJAX跨域请求json数据的实现方法,有需要的朋友可以参考一下 我们都知道,AJAX的一大限制是不允许跨域请求. 不过通过使用JSONP来实现.JSONP是一种通过脚本标记注入的方式,它是可以引用跨域URL的js脚本,不过需要提供一个回调函数(必须在您自己的页面上),因此,你可以自己处理结果. 让我们看看JSONP的是怎么在jQuery,MooTools的,Dojo Toolkit中实现的. jQuery的JSONPjQuery.getJSON方法:Js代码 jQuery.get

跨域获取json数据

这是天气json的数据,这里是链接,json的数据接口  http://m.weather.com.cn/data/101010100.html json的数据格式 {"weatherinfo":{"city":"北京","city_en":"beijing","date_y":"2014年3月4 日","date":"",&q

jquery的ajax和getJson跨域获取json数据

原文:http://www.cnblogs.com/yqskj/archive/2013/06/12/3133247.html 很多开发人员在使用jquery在前端和服务器端进行数据交互,所以很容易会认为在前端利用jquery就可以读取任何站点的数据了.近日在进行开 发时,因为要和第三方公司的一个项目进行数据的共享,因为考虑多不占用服务器的资源,遂决定直接在html进行数据的读取,不走服务器端进行中转了.然后 正好就遇到了浏览器端跨域访问的问题. 跨域的安全限制都是指浏览器端来说的,服务器端不存

【转载1】jquery的ajax和getJson跨域获取json数据

目前浏览器端跨域访问常用的两种方法有两种: 1.通过jQuery的ajax进行跨域,这其实是采用的jsonp的方式来实现的. jsonp是英文json with padding的缩写.它允许在服务器端生成script tags至返回至客户端,也就是动态生成javascript标签,通过javascript callback的形式实现数据读取. html代码: 1 $(function(){ 2 3 $("#ww").click(function(){ 4 5 $.ajax({ 6 ty

javascript跨域获取json数据

项目在开发过程中,用到了天气预报的功能,所以需要调用天气预报的api,一开始以为直接用ajax调用url就可以获取天气数据,结果涉及到了跨域的问题,这里做一个记录. 说到跨域,就得知道同源策略. 同源策略(Same origin policy),是由Netscape提出的一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略.所谓同源是指,域名,协议,端口相同.它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在

ajax 跨域获取数据jsonp使用

昨天帮同事从其他服务器传过来的json数据进行处理,遇到该问题.开始我的思路是用ajax直接请求把数据弄出来就OK了,然而出错了.原因是我使用的ajax 返回类型为json,默认ajax阻止跨服获取数据的.结合其他博文,ajax的dataType使用jsonp来解决此问题.开始觉得jsonp与json的使用类似,一步步的写着代码,如下: $.ajax({ type:'get', async:false, url:'http://112.11.131.238/nanhunongjing/GetCo

Ajax跨域、Json跨域、Socket跨域和Canvas跨域等同源策略限制的解决方法

同源是指同样的协议.域名.port,三者都同样才属于同域.不符合上述定义的请求,则称为跨域. 相信每一个开发者都曾遇到过跨域请求的情况,尽管情况不一样,但问题的本质都能够归为浏览器出于安全考虑下的同源策略的限制. 跨域的情形有非常多,最常见的有Ajax跨域.Socket跨域和Canvas跨域.以下列举一些我们常见的跨域情形下.某些浏览器控制台给出的错误提示: FireFox下的提示: 已阻止交叉源请求:同源策略不同意读取***上的远程资源.能够将资源移动到同样的域名上或者启用 CORS 来解决问

跨域获取服务器数据方式

学习AJAX跨域获取数据碰到这个问题,特此记录. 理解跨域首先必须要了解同源策略.同源策略是浏览器上为安全性考虑实施的非常重要的安全策略. 同源是什么?URL由协议.域名.端口和路径组成,如果两个URL的协议.域名和端口相同,则表示他们同源. 为什么需要同源? 假设从一个恶意网站打开支付宝或其他重要的页面(通过window.open),如果没有同源限制,恶意网页上的javascript脚本就可以任意操作你打开的支付宝等网页,这是极其危险的. 由于同源策略的限制,XmlHttpRequest只允许