您的位置:首页 > Web前端 > JQuery

利用jquery对ajax操作,详解原理(附代码)

2013-06-25 20:50 357 查看
1. jQuery load() 方法

jQuery load() 方法是简单但强大的 AJAX 方法。

load() 方法从服务器加载数据,并把返回的数据放入被选元素中。

语法:

$(selector).load(URL,data,callback);

必需的 URL 参数规定您希望加载的 URL。

可选的 data 参数规定与请求一同发送的查询字符串键/值对集合。//这个就是往服务器传数据的

可选的 callback 参数是 load() 方法完成后所执行的函数名称。//

下面的例子把 "demo_test.txt" 文件中 id="p1" 的元素的内容,加载到指定的 <div> 元素中:

实例

$("#div1").load("demo_test.txt #p1");

2. jQuery get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据。

首先要了解什么是 HTTP?

超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。

HTTP 的工作方式是客户机与服务器之间的请求-应答协议。

Web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。

举例:客户端(浏览器)向服务器提交 HTTP请求;服务器向客户端返回响应。响应包含关于请求的状态信息以及可能被请求的内容。

还有get()和post()的区别

· GET 请求可被缓存

· GET 请求保留在浏览器历史记录中

· GET 请求可被收藏为书签

· GET 请求不应在处理敏感数据时使用

· GET 请求有长度限制

· GET 请求只应当用于取回数据

· POST 请求不会被缓存

· POST 请求不会保留在浏览器历史记录中

· POST 不能被收藏为书签

· POST 请求对数据长度没有要求

GET

POST

后退按钮/刷新

无害

数据会被重新提交(浏览器应该告知用户数据会被重新提交)。

书签

可收藏为书签

不可收藏为书签

缓存

能被缓存

不能缓存

编码类型

application/x-www-form-urlencoded

application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。

历史

参数保留在浏览器历史中。

参数不会保存在浏览器历史中。

对数据长度的限制

是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。

无限制。

对数据类型的限制

只允许 ASCII 字符。

没有限制。也允许二进制数据。

安全性

与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。

在发送密码或其他敏感信息时绝不要使用 GET !

POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。

可见性

数据在 URL 中对所有人都是可见的。

数据不会显示在 URL 中。

例子get:

<script>

$(document).ready(function(){

$("button").click(function(){

$.get("/example/jquery/demo_test.asp",function(data,status){

alert("数据:" + data + "\n状态:" + status);

});

});

});

</script>

<%

response.write("This is some text from an external ASP file.")

%>


结果会出来:

"数据:This is some text from an external ASP file. 状态:success

Post例子:

就用servlet吧。

第一个是MyServlet.Java

package com.fish;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class MyServlet extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

PrintWriter out = response.getWriter();

System.out.println(request.getParameter("name"));//这个等会从juqery里面获取

System.out.println(request.getParameter("text"));

out.print("aa");

out.print("bb");

//

}

}

然后将1.9的js框架导入,

在jsp这么写

<%@ page language="java"import="java.util.*"pageEncoding="utf-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme() +"://"

+ request.getServerName() +":" + request.getServerPort()

+ path + "/";

%>

<!DOCTYPEHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<basehref="<%=basePath%>">

<title>My JSP 'MyJsp.jsp' starting page</title>

<scripttype="text/javascript"src="jquery-1.9.1.js"></script>//放入js框架

<scripttype="text/javascript">

$(document).ready(function() {

$("p").click(function() {

$.post("servlet/MyServlet", //这个是MyServlet的路径

{

name:"你好", //第二个是以json格式的传值,和上面servet的名相同,这样就可以传到服务器。

text:"我是千岛飞鱼"

},

function(data,status){ //从服务器读的内容会在data里面。Status这个读取的状态

alert("Data: " + data +"\nStatus: " + status);

});

});

});

</script>

</head>

<body>

<p>点击我</p>

</body>

</html>

所以结果在eclispe控制台会显示:你好我是千岛飞鱼。

在浏览器会弹出:Data:aabb Status:sucess
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: