`
hudeyong926
  • 浏览: 2037502 次
  • 来自: 武汉
社区版块
存档分类
最新评论

jquery+json的6种ajax请求

 
阅读更多

跨域的方法

JSONP跨域GET请求
通过iframe实现跨域
flash跨域HTTP请求
window.postMessage

header实现跨域

serialize序列表表格内容为字符串,不支持form嵌套中的子form

HTML代码:

<form id="myform">
姓名:<input type="text" name="name" size="10" />
性别:<input type="radio" name="sex" value="男" />男
<input type="radio" name="sex" value="女" />女
<input type="submit" value="ok" />
</form>
<div id="rename"></div>
<div id="resex"></div>
<div id="re" style="display:none"></div>

 show.php代码:

<?php
header("Cache-Control: no-cache, no-store, must-revalidate, max-age=-1");
header("Content-Type: application/json; charset=utf-8");
$user['name']="姓名:".$_REQUEST['name'];
$user['sex']="性别:".$_REQUEST['sex'];
echo json_encode($user);
?>

 第一种方式:1、jQuery.ajax(options) 可以实现同步

<script type="text/javascript">
    $(document).ready(function () {
        $(":submit").click(function () {
            var str = $("#myform").serialize();
            $.ajax({
                url:"show.php",
                type:"post",
                data:str,
                dataType:"json",
                timeout:1000,
                error:function () {
                    alert("ajax error!");
                },
                success:callback
            });
            return false;
        });
    });
    function callback(jsondata) {
        $("#rename").html(jsondata.name);
        $("#resex").html(jsondata.sex);
    }
</script>

 第二种方式:2、load(url,data,callback)

<script type="text/javascript">
$(document).ready(function(){
	$(":submit").click(function(){
		var str=$("#myform").serialize();
		$("#re").load("show.php",str,function(jsondata){
			data=eval("("+jsondata+")");
			$("#rename").html(jsondata.name);
			$("#resex").html(jsondata.sex);
		});
		return false;
	});
});
</script>

load方式可以在url后面加选择器的,语法形如 "url #some > selector",但这里的例子返回的数据是json格式,所以就不能加选择器,这里只是为了演示,所以就用一个隐藏的div来载入json数据,然后 在回调函数里显示出来,在实际项目中是不会这样整的。。。

 

第三种方式:3、jQuery.get(url,data,callback,type)

<script type="text/javascript">
$(document).ready(function(){
	$(":submit").click(function(){
		var str=$("#myform").serialize();
		$.get("show.php",str,function(jsondata){
			$("#rename").html(jsondata.name);
			$("#resex").html(jsondata.sex);
		},"json");
		return false;
	});
});
</script>

 第四种方式:4、jQuery.getJSON(url,data,callback) 异步请求

<script type="text/javascript">
$(document).ready(function(){
	$(":submit").click(function(){
		var str=$("#myform").serialize();
		$.getJSON("show.php",str,function(jsondata){
			$("#rename").html(jsondata.name);
			$("#resex").html(jsondata.sex);
		});
		return false;
	});
});
</script> 

getJSON还可以通过JSONP协议来进行跨域调用数据。只要用jsonp方式就只能是get,因为本质是script方式加载的一个简单的例子:

a站www.a.com 下放置一个调用页面client.html,代码:

<script type="text/javascript">
$.getJSON("http://www.b.com/server.php?name=jackie&sex=boy&callback=?",function(data){
	alert(data.name+" "+data.sex);
});
</script>

 b站www.b.com 下放置返回json的php文件 server.php,代码:

<?php
	$name=$_REQUEST['name'];
	$sex=$_REQUEST['sex'];
	$jsondata="{name:'".$name."',sex:'".$sex."'}";
	echo $_GET['callback']."(".$jsondata.")";
?>
callback({name:'this is json data',sex:'男'})

 header实现跨域

<?php
// ajax通过设置Access-Control-Allow-Origin来实现跨域访问比较简单.指定允许其他域名访问
header('Access-Control-Allow-Origin:*');
// 响应类型
header('Access-Control-Allow-Methods:POST, GET, OPTIONS');
// 响应头设置
header('Access-Control-Allow-Headers:x-requested-with,content-type');

 

第五种方式:5、jQuery.post(url,data,callback,type)

<script type="text/javascript">
$(document).ready(function(){
	$(":submit").click(function(){
		var str=$("#myform").serialize();
		$.post("show.php",str,function(jsondata){
			$("#rename").html(jsondata.name);
			$("#resex").html(jsondata.sex);
		},"json")
		return false;
	});
});
</script>

 第六种方式:jQuery.getScript(url,[callback])

<html>
<head>
<title>JQuery学习</title>
<script src="jquery-1.2.6.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
	var oBtnTest = $("#btnTest");
	oBtnTest.click(function(){
		oBtnTest.disabled = true;
		var oResult = $("#result");
		oResult.html("loading").css("color","red");
		jQuery.getScript("http://app.cntvs.com/test/js.txt",
		function(){
			oResult.html("name:" + jimmy.name + "<br/>email:" + jimmy.email).css("color","black");
			oBtnTest.disabled = false;
		});
	});
});
</script>
</head>
<body>
<button id="btnTest">BtnTest</button>
<div id="result"></div>
</body>
</html>

 远程服务器端js.txt的内容为:
var jimmy = {name:"jimmy.yang",email:jimmy.yang@163.com}

getScript是通过 HTTP GET 请求载入并执行一个 JavaScript 文件。很简单,而且在当前的例子中不适用,所以略过。 ps:php判断是否为ajax请求可以用$_SERVER['HTTP_X_REQUESTED_WITH'],如 if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])=='xmlhttprequest') return true; }

分享到:
评论

相关推荐

    SSH+jQuery+json 实现的Ajax操作,绝对精华,代码简练清晰,绝对能看明白

    当用户选择省份后,jQuery会发送Ajax请求到服务器,服务器使用SSH框架处理请求,查询数据库并返回JSON格式的城市数据,最后jQuery解析JSON并在前端更新城市选择框。 总结来说,这个压缩包提供的示例是一个基于SSH...

    Struts2 + jQuery+JSON 实现ajax

    这种配置使得当用户发起Ajax请求时,Struts2会自动将Java对象转换为JSON格式的数据返回给前端。 3. **前端页面编写** 前端页面使用了jQuery库来发起Ajax请求。首先引入jQuery库(这里使用的是1.2.6版本),然后...

    项目组管理系统,Java+json+jQuery+ajax

    在查看源代码时,可以学习到如何组织Java类、如何编写REST API、如何使用jQuery进行DOM操作以及如何构建Ajax请求等具体技术细节。 总结起来,这个【项目组管理系统】结合了Java的稳定性和强大的功能,利用JSON进行...

    简单的SSH+JQuery+JSON例子

    1. 用户通过前端页面发送Ajax请求,请求由JQuery发起,数据格式为JSON。 2. Struts框架接收到请求,通过Action转发到Spring控制层。 3. Spring控制层调用业务服务,该服务可能利用Hibernate查询或修改数据库。 4. ...

    JSP+Jquery+JSON 集合实现AJAX

    4. **JSP与JSON**:学习如何在JSP中生成JSON数据,以及如何处理来自AJAX请求的参数。 5. **实践项目**:通过实际项目练习,将学到的知识应用到实际开发中。 通过本教程,你将能够掌握如何结合JSP、jQuery和JSON来...

    struts2+jquery+json+ajax例子

    jQuery脚本则负责发送Ajax请求,并处理返回的JSON数据,更新UI以反映登录状态。Struts2的相关配置文件,如struts.xml,定义了Action的映射和结果类型,确保Ajax请求能够正确地路由到处理逻辑。 总结起来,"struts2+...

    jquery+ajax+json例子

    总结一下,jQuery简化了DOM操作和Ajax请求,Ajax允许我们在不刷新页面的情况下与服务器进行通信,而JSON则提供了一种高效的数据交换格式。在"TestJQuery"这个例子中,这三个技术的结合展示了如何构建一个动态的、...

    struts2+spring+hibernate+jquery+json

    Struts2、Spring、Hibernate、jQuery 和 JSON 是五个在IT行业中极为重要的技术组件,它们各自在Web应用开发中扮演着不同的角色。这篇文章将详细介绍这些技术的整合使用以及它们的功能。 首先,Struts2 是一个基于 ...

    jQuery+json+struts2 开发备忘录(一)

    然后,前端利用jQuery的`$.ajax`或`$.getJSON`方法请求服务器数据,将接收到的JSON对象解析并更新到DOM中,实现动态更新页面内容。 例如,一个简单的Struts2 Action可能如下所示: ```java public class MyAction ...

    Jquery + Json 无刷新分页

    Ajax无刷新分页(jQuery+Json) 做了一个用jQuery来实现的用户控件,VS2008+Access jQuery+ashx+JSON 用ashx来接收请求,数据格式为JSON 实现了批量(选择)操作,编辑接口(反回两个值给用户进行自定义操作) 删除,...

    Ajax无刷新分页(jQuery+Json)

    Ajax无刷新分页(jQuery+Json) 做了一个用jQuery来实现的用户控件,VS2008+Access 只用来玩玩.所以就用Access数据库了 jQuery+ashx+JSON 用ashx来接收请求,数据格式为JSON 实现了批量(选择)操作,编辑接口(反回...

    net+jquery+json实现ajax

    1. 使用jQuery的getJSON方法发起AJAX请求,获取由.NET .ashx处理程序生成的JSON数据。 2. .NET环境中,.ashx文件通过实现IHttpHandler接口,处理HTTP请求并返回JSON格式的数据。 3. 在服务器端,我们构建JSON字符串...

    jQuery+get/post+Ajax+Json

    jQuery的Ajax方法提供了一个统一的接口来处理所有类型的Ajax请求,包括GET、POST、PUT和DELETE等。在上述示例中,我们使用了$.ajax方法,设置type为'POST',data为JSON对象,dataType为'json',以发送JSON数据到...

    ajax+json实例

    在这个例子中,服务器端通过`JsonResult`返回JSON格式的用户信息,客户端通过AJAX请求获取这些信息并解析显示。 **五、总结** AJAX+JSON在.NET环境中的应用大大提高了Web应用程序的交互性和效率,减少了不必要的...

    Java+Servlet+Jquery+Json基础示例

    首先,用户通过前端界面(HTML+CSS+Jquery)发送Ajax请求,Jquery负责包装和发送这些请求,通常是以Json格式的数据。服务器端的Java Servlet接收到这些请求,解码Json数据,执行相应的业务逻辑,然后可能需要更新...

    Jquery+ajax+json+servlet

    由于JSON与JavaScript语法紧密相关,因此在Web开发中,JSON常被用作Ajax请求的数据格式。使用jQuery的Ajax方法时,可以方便地发送或接收JSON数据。 最后,`Servlet` 是Java EE平台中用于构建服务器端应用程序的组件...

    一个页面实现Ajax效果的增删改查-JQuery+Json版.zip

    在这个项目中,jQuery被用来处理用户的交互事件,如点击按钮,以及发送Ajax请求到服务器。 Ajax的核心在于创建XMLHttpRequest对象,但在jQuery中,我们只需使用$.ajax()函数即可。此函数可以配置各种参数,如请求...

    ssh2+ajax+jquery+json 登陆验证

    在本场景中,使用jQuery可以更方便地发起Ajax请求并处理返回的数据。 ### JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。使用JSON作为数据...

    struts2+jquery+json+ajax

    这个教程可能详细介绍了如何集成这四者,比如设置Struts2的JSON插件,创建Action来返回JSON数据,编写jQuery代码来发送Ajax请求,以及如何在前端解析和显示JSON数据。通过学习和实践这个例子,开发者可以深入理解...

    JQuery+json+ashx异步请求分页

    本主题将深入探讨如何使用JQuery、JSON和ASHX处理异步请求实现分页功能。 JQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理和AJAX交互。在分页场景中,JQuery主要负责监听用户操作,如点击分页按钮,...

Global site tag (gtag.js) - Google Analytics