1. 程式人生 > >Ajax(二) — Ajax初步 : $.post 方法與 $.ajax 方法

Ajax(二) — Ajax初步 : $.post 方法與 $.ajax 方法

1.$.post方法

通過遠端 HTTP POST 請求載入資訊。

這是一個簡單的 POST 請求功能以取代複雜 $.ajax 。請求成功時可呼叫回撥函式。如果需要在出錯時執行函式,請使用 $.ajax。

post.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script src="../../js/jquery-1.7.2.js"></script>
<script src="post.js"></script>
</head>
<body>
</body>
</html>
post.js
$(function(){
	/**
	 * 該方法是jquery對最原始的ajax請求做的封裝
	 * 引數1:   url
	 * 引數2:   客戶端傳遞的引數
	 * 引數3:   回撥函式:需要注意兩點:
	 * 				1.是伺服器成功返回時要執行的函式
	 * 				2.該回調函式必須是readyState的值為4,status的值為200時,才能呼叫
	 * 					(一旦服務端出錯,status狀態碼改變,回撥函式不再執行)
	 * 引數4:	   返回內容的格式,一般都是json
	 */
	$.post("../../AjaxPostServlet",null,function(data){
		alert(data);//data就是伺服器端的返回值
	});
	/**
	 * 注意:post方法只能接受到服務端響應成功後的結果,如果伺服器端失敗,那麼post方法是無法接受到的
	 * 對於Servlet而言,如果內部出錯,service方法的呼叫者會更改status的值
	 * 但是Struts2不會修改status的值,無論服務端是否出錯,ajax都只是感應正確的返回
	 */
});
Servlet
package cnc.cil.ajax.servlet;

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 AjaxPostServlet extends HttpServlet {

	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		//int i = 10 / 0;
		out.println("$.post -> success");
		out.flush();
		out.close();
	}

}
2.$.ajax 方法

通過 HTTP 請求載入遠端資料。

jQuery 底層 AJAX 實現。簡單易用的高層實現見 $.get, $.post 等。$.ajax() 返回其建立的 XMLHttpRequest 物件。大多數情況下你無需直接操作該函式,除非你需要操作不常用的選項,以獲得更多的靈活性。

最簡單的情況下,$.ajax()可以不帶任何引數直接使用。

注意,所有的選項都可以通過$.ajaxSetup()函式來全域性設定。

回撥函式

如果要處理$.ajax()得到的資料,則需要使用回撥函式。beforeSend、error、dataFilter、success、complete。

  • beforeSend 在傳送請求之前呼叫,並且傳入一個XMLHttpRequest作為引數。
  • error 在請求出錯時呼叫。傳入XMLHttpRequest物件,描述錯誤型別的字串以及一個異常物件(如果有的話)
  • dataFilter 在請求成功之後呼叫。傳入返回的資料以及"dataType"引數的值。並且必須返回新的資料(可能是處理過的)傳遞給success回撥函式。
  • success 當請求之後呼叫。傳入返回後的資料,以及包含成功程式碼的字串。
  • complete 當請求完成之後呼叫這個函式,無論成功或失敗。傳入XMLHttpRequest物件,以及一個包含成功或錯誤程式碼的字串。
ajax.js
$(function(){
	// json {key:value,key:value}
	$.ajax({
		url:"../../AjaxAjaxServlet",
		success:function(){//如果伺服器端成功響應,則執行該函式
			alert("success");
		},
		error:function(){ //如果伺服器端錯誤,則響應該函式
			alert("error");
		},
		type:'POST'  //預設是GET
	});
});

即使是服務端出錯$.ajax方法也可以接受,所以,一般採用$.ajax的方式

相關推薦

JQUERY的AJAX中 get()、post()的跨域方法

get()請求: $.ajax({ type: "get", url: "你的請求地址", dataType: 'jsonp', //【jsonp進行跨域請求 只支援get】 data:{ //【這裡填寫

SpringBoot專案開發(十三):Ajax Post資料到控制器方法,引數自動轉換為物件

往往有這麼個需求,在新增使用者時,頁面以 ajax 方式把 user 物件資料提交到後臺控制器上, 控制器方法中的引數以物件形式進行接收,這時就需要把json字串自動轉換為物件 在SpringBoot或SpringMvc中,有@ResponseBody 、@RequestBody 兩

Ajax() — Ajax初步 : $.post 方法 $.ajax 方法

1.$.post方法 通過遠端 HTTP POST 請求載入資訊。 這是一個簡單的 POST 請求功能以取代複雜 $.ajax 。請求成功時可呼叫回撥函式。如果需要在出錯時執行函式,請使用 $.a

AJAX()詳解GET/POST請求

round 參數 context 步驟 quest turn 異步請求 讀取 ie瀏覽器   上次是最簡單的原生JS實現AJAX效果。不過,那簡單的步驟不能適應各種不同的瀏覽器,尤其是萬惡的IE,尤其是低版本的IE瀏覽器。本期就來搞定各個瀏覽器,以及其他各項參數的設置。  

django設定並獲取cookie/session,檔案上傳,ajax接收檔案,post/get請求及跨域請求等的方法

django設定並獲取cookie/session,檔案上傳,ajax接收檔案等的方法: views.py檔案: from django.shortcuts import render,HttpResponse,redirect import datetime import json from

jQuery AJAX — 篇 $.get()和 $.post()

  上篇部落格中說到jQuery對Ajax操作進行了封裝,我們可以很簡單的應用AJAX,並且學習了jQuery AJAX的 $.load()方法,今天再來學習另外兩個方法$.get()和$.post

js原生和ajax的get和post方法以及jsonp的原生寫法

login.onclick = function(){var xhr = new XMLHttpRequest();xhr.open("get","http://localhost/ajax2/test2.php?username="+username.value+"&am

對jquery中的$.ajax次封裝 從而多次調用 今天一整天都在想這個事情

send attribute 面試官 clas display str kit || enc 當然了 我封裝的是$.ajax 可以傳參數 多次調用請求接口 為啥我們這地方不註重前端呢 我都不知道為啥去堅持 不說了 上代碼 js文件 $ajax.js $(fun

利用ajax異步處理POST表單中的數據

利用 tex oda checkbox nbsp st表 success target .ajax //防止頁面進行跳轉 $(document).ready(function(){ $("#submit").click(function(

ajax的get 和post方式發送請求

reat hang utf-8 util tro scheme script lencod ref <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% St

[ECSHOP次開發]解決分類商品Ajax連續請求導致的數據重復

代碼 ren += var 取數 開發 變量 images timeout 0x00: 首先聲明一個全局變量。 var control = true; 然後,在滑動處罰ajax請求的代碼處,做一個判斷。 if (control) {

WebForm.aspx 頁面通過 AJAX 訪問WebForm.aspx.cs類中的方法,獲取數據(轉)

html ref doc tran jquery helper event query sender WebForm.aspx 頁面通過 AJAX 訪問WebForm.aspx.cs類中的方法,獲取數據 WebForm1.aspx 頁面 (原生AJAX請求,寫法一) &l

ajax分頁查詢信息的通用方法

execute .sql sco 結果 tex warnings path lec 組合 1.頁面準備分頁的表格與分頁div   同時需要在查詢條件表單中準備隱藏當前頁與頁大小的文本框 <div class="container-flu

AJAX():HTTP頭部信息

結構 情況 定義 charset 兩個 內容 head gpo success 每個http請求和響應都會帶有相應都頭部信息,其中有的對開發人員有用,有的頁沒有什麽用默認情況下,發送xhr請求的同時,還有發送下列頭部信息 Accept:瀏覽器能夠處理的內容類型 Ac

ajax,get和post的區別

get請求 AD 優點 class 完整 歷史 返回 環境 一次 get參數通過url傳遞,post放在request body中。 get請求在url中傳遞的參數是有長度限制的,而post沒有。 get比post更不安全,因為參數直接暴露在url中,所以不能用

jQuery操作基本操作三學習筆記 ajax

let jquery操作 data json html 發送請求 lB TP ade $.get(url, [data], [callback], [type]) 通過遠程 HTTP GET 請求載入信息;這是$.ajax的一個高級實現。 參數 描述 url 發送

$.ajax()方法和$.get()方法使用小結

con 後臺程序 程序 htm null lse min .ajax 圖片 一. 使用JQuery的$.get()方法實現異步請求 1. 編寫JSP 1 <!DOCTYPE html> 2 <html lang="en"> 3 <hea

ajax在同一頁面中同控制器不同方法中調用數據並異步刷新的實例

lan rem ajax ear scrip 問題 效果圖 新的 來源 我在實習以來都有做一些筆記,之前做的筆記都在簡書裏,現在我提前把公司給我的任務做好了,坐在電腦前又不好玩別的,那麽我就整理下我之前的筆記吧!(此項目是thinkphp5開發的) 先上效果圖 這是整

JavaScript的Ajax封裝GET和POST

ror lis else ready .data 轉換 i++ stat try <!DOCTYPE html> <html> <head> <title>封裝ajax</title> </head&

JQuery - Ajax和Tomcat跨域請求問題解決方法

頁面 解析json turn 圖片 fault $.ajax action 配置 span 在JQuery裏面使用Ajax和Tomcat服務器之間進行數據交互,遇到了跨域請求問題,無法成功得到想要的數據! 錯誤信息部分截圖: 通過錯誤信息判斷知道已經發生在Ajax跨域請求