亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

AJAX - $.post(url,data,function,type)

2024-04-27 15:17:34
字體:
來源:轉載
供稿:網友

$.post()方法通過 HTTP POST 方式向服務器發送請求并獲取返回的數據。是 $.Ajax()的簡化版。

參數講解:

url:必需。請求地址

data:可選。需要傳遞到服務器端的參數。 參數形式為“鍵/值”。

function:可選。發送請求成功后的回調函數,在請求完成時被調用。該函數參數依次為響應體和狀態。(只有當Response的返回狀態是success才是調用該方法)

type:可選。返回數據的類型??梢允牵簊tring或json、xml等類型。

jsp頁面】

|—————————————————— 注意,本篇傳到后臺的參數形式為username=yanshi02&passWord=123456 |——————————————————

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'post.jsp' starting page</title> <meta http-equiv="CSS" href="styles.css"> --> <script type="text/Javascript" src="./scripts/jquery-1.7.2.js"></script> <script type="text/javascript"> var url =""; var queryString = ""; $(function(){ $("input[type='button']").click(function(){ url = $("#editform").attr("action"); queryString = $('#editform').serialize(); $.post(url,queryString,function(data){ alert(data); //var jsonReturn=eval("("+data+")"); } ,"json"); }); }); </script> </head> <body> This is my JSP page. <br> <form id="editform" action="postServlet2" method="post"> <input type="text" name="username" value=""/> <input type="password" name="password" value=""/> </form> <input name="post" type="button" value="提交"/> </body></html>

【后臺接收servlet1】

思路:

通過request.getReader獲取一個BufferedReader; 寫入到一個StringBulider,轉換為String; …….. 返回一個json。

package com.atgui.ajax.app.servlet;import java.io.BufferedReader;import java.io.IOException;import java.io.PrintWriter;import java.util.HashMap;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.codehaus.jackson.map.ObjectMapper;public class PostServlet extends HttpServlet { /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here System.out.println("postServlet destroy() ......"); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/json"); PrintWriter out = response.getWriter(); //拿到$("#editform").serialize(); String jsonString =getStringFromReq(request) ; System.out.println("jsonString..."+jsonString); //通過拿到的querystring轉換為map HashMap<String, Object> map = getMapFromQueryString(jsonString); //將轉換得到的map轉換為json并返回 ObjectMapper objectMapper = new ObjectMapper(); String resultJson = objectMapper.writeValueAsString(map); System.out.println("resultJson ..."+resultJson); out.print(resultJson); out.flush(); out.close(); } public void init() throws ServletException { // Put your code here System.out.println("postServlet init()......."); } public String getStringFromReq(HttpServletRequest request) { StringBuilder sb = new StringBuilder(); try { BufferedReader reader = request.getReader(); char[]buff = new char[1024]; int len; while((len = reader.read(buff)) != -1) { sb.append(buff,0, len); } }catch (IOException e) { e.printStackTrace(); } String resultString = sb.toString(); return resultString; } public HashMap<String, Object> getMapFromQueryString(String queryString) { HashMap map = new HashMap<String, String>(); String[] qStrings = queryString.split("&"); for (String string : qStrings) { String[] qStrings2 = string.split("="); map.put(qStrings2[0], qStrings2[1]); } return map; }}

下圖標明:

響應內容類型為json; 請求呢歐讓類型為默認值;

Content-Type:application/x-www-form-urlencoded; charset=UTF-8會將參數以 "a=1"&"b=2";的形式進行編碼。如:username=yanshi02&password=123456

表單數據在Form Data域;

這里寫圖片描述


【后臺接收servlet2】

思路:

通過Map<String,String[]> map=request.getParameterMap();得到參數; ……. 返回json。

package com.atgui.ajax.app.servlet;import java.io.BufferedReader;import java.io.IOException;import java.io.PrintWriter;import java.util.HashMap;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.codehaus.jackson.map.ObjectMapper;public class PostServlet2 extends HttpServlet { /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here System.out.println("postServlet2 destroy() ......"); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/json"); PrintWriter out = response.getWriter(); //拿到參數 Map<String,String[]> map = request.getParameterMap(); HashMap<String, Object> map2 = new HashMap<String, Object>(); for(String key : map.keySet()){ System.out.println("key :"+key+", value : "+map.get(key)[0]); for (int i = 0; i < map.get(key).length; i++) { System.out.println(i+","+map.get(key)[i]); } map2.put(key, map.get(key)[0]); } //將轉換得到的map2轉換為json并返回 ObjectMapper objectMapper = new ObjectMapper(); String resultJson = objectMapper.writeValueAsString(map2); System.out.println("resultJson ..."+resultJson); out.print(resultJson); out.flush(); out.close(); } public void init() throws ServletException { // Put your code here System.out.println("postServlet2 init()......."); }}

result as follows:

postServlet2 init().......key :username, value : yanshi020,yanshi02key :password, value : 1234560,123456resultJson ...{"username":"yanshi02","password":"123456"}

題外話1: 如果以以下形式傳值呢?

$.post(url+"querystring="+queryString,queryString,function(data){});

一部分參數在URL后面,一部分為form data。

【如果為 get 請求,無論傳輸形式怎樣,數據都在Query String Parameters 里面!】點擊查看Get 請求


F12看控制臺:

(1) 請求URL:

Request URL:http://localhost:8080/AJAX/postServlet2?querystring=username=yanshi02&password=123456

(2) URL后面的參數放在了Query String Parameters里面。 而且,分成的兩部分:

querystring:username=yanshi02password:123456//默認以 & 分割 !?。?p>(3) 另外正常傳的queryString放在了Form Data里面。

這里寫圖片描述

其中,接收方法思路有三種。

① 使用request.getParameterMap;

修改部分代碼 :

Map<String,String[]> map = request.getParameterMap(); HashMap<String, Object> map2 = new HashMap<String, Object>(); for(String key : map.keySet()){// System.out.println("key :"+key+", value : "+map.get(key)[0]);// if (map.get(key).length>1) {// System.out.println("key :"+key+", value :"+map.get(key)[1]);// } for (int i = 0; i < map.get(key).length; i++) { System.out.println("key :"+key+","+i+","+map.get(key)[i]); } map2.put(key, map.get(key)[0]); }

result as follows :

postServlet2 init().......key :querystring,0,username=yanshi02key :username,0,yanshi02key :password,0,123456key :password,1,123456resultJson ...{"username":"yanshi02","querystring":"username=yanshi02","password":"123456"}//可見 key為password的數組:"password":["123456","123456"]

② 使用request.getReader ;

只能獲取 Form Data,不能獲取Query String Data。

同理,該方法不適用 $.get() 。

③ 使用request.getQueryString;

只能獲取Query String Data,不能獲取Form Data 。


題外話2

如果請求形式為:queryString = $('#editform').serialize();$.post(url,{mydata:queryString},function(data){});

首先看大圖

這里寫圖片描述

數據傳輸形式為:

mydata:username=yanshi02&password=123456

那么除了上述兩種思路外。 還有第三種思路!

使用request.getParameter("mydata")

String jsonStr = request.getParameter("mydata");System.out.println(jsonStr);

只要獲得拼接的string,就可以返回json!


綜上:

默認ContentType下,數據會以username=yanshi02&password=123456形式進行編碼。

Content-Type:application/x-www-form-urlencoded; charset=UTF-8

如果是以{key : value} 形式傳輸的,有三種接收思路:

$.post(url,{mydata:queryString},function(data){});

① 使用request.getReader; ② 使用request.getParameterMap; ③ 使用request.getParameter("key");

如果是以 value形式傳輸的,則可以使用前兩種思路。

$.post(url,queryString,function(data){});

注意 :此時的queryString取值!

queryString = $('#editform').serialize();

至于queryString取如下值(JSON形式),請看下一篇queryString為json形式 【http://blog.csdn.net/J080624/article/details/54949134】

queryString = $('#editform').serializeArray();queryString = JSON.stringify(queryString);//string
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美在线视频| 92看片淫黄大片欧美看国产片| 欧美激情视频一区二区| 中文字幕在线国产精品| 国产精品久久久精品| 中文字幕av一区二区三区谷原希美| 一级做a爰片久久毛片美女图片| 国产精欧美一区二区三区| 日韩av综合网| 久精品免费视频| 国产亚洲精品久久| 国产成人精品视频在线观看| 亚洲日韩欧美视频一区| 欧美一级大胆视频| 久久久伊人欧美| 欧美亚洲午夜视频在线观看| 国产精品视频在线播放| 欧美又大又硬又粗bbbbb| 欧美电影在线播放| 日韩最新av在线| 国内精品国产三级国产在线专| 国产日产欧美精品| 国产精品第一视频| 国产一区深夜福利| 精品少妇一区二区30p| 日韩电影免费观看中文字幕| 国产精品吊钟奶在线| 国产精品久久久| 亚洲午夜av电影| 精品免费在线视频| 日韩精品在线视频美女| 亚洲最大福利网| 亚洲精品视频免费| 久久色精品视频| 日韩美女免费线视频| 欧美资源在线观看| 精品国产一区二区三区久久久| 日韩av影院在线观看| 亚洲天堂网在线观看| 精品人伦一区二区三区蜜桃免费| 亚洲综合自拍一区| 欧美噜噜久久久xxx| 91视频国产精品| 国产精品欧美亚洲777777| 伊人亚洲福利一区二区三区| 久久久精品网站| 91久久久久久久一区二区| 国产成人福利网站| 在线电影欧美日韩一区二区私密| 日韩av在线网址| 6080yy精品一区二区三区| 91影视免费在线观看| 欧美在线性爱视频| 成人看片人aa| 日本亚洲精品在线观看| 欧美性理论片在线观看片免费| 久久综合88中文色鬼| 性色av一区二区三区| 亚洲精品一区av在线播放| 欧美精品videossex88| 日韩中文字幕第一页| 永久555www成人免费| 国产精品视频yy9099| 亚洲一区二区中文| 亚洲一区二区三区成人在线视频精品| 九九久久国产精品| 久久99精品久久久久久青青91| 不卡毛片在线看| 91在线观看欧美日韩| 日韩欧美中文字幕在线观看| 中文字幕亚洲无线码a| 国产精品青草久久久久福利99| 亚洲国产成人久久综合一区| 日韩av综合网站| 亚洲mm色国产网站| 国产999精品久久久影片官网| 中日韩美女免费视频网址在线观看| 国产精品入口日韩视频大尺度| www日韩欧美| 美日韩在线视频| 欧美中文在线视频| 精品国产一区二区在线| 国产欧美精品一区二区三区介绍| 国产精品黄视频| 亚洲新中文字幕| 亚洲欧美日韩另类| 中文字幕国产精品| 中文字幕九色91在线| 久久99国产精品久久久久久久久| 亚洲国产精品久久久| 国产福利精品视频| 成人网页在线免费观看| 中文字幕不卡在线视频极品| 成人动漫网站在线观看| 国产美女精彩久久| 日韩经典一区二区三区| 欧美另类暴力丝袜| 2019亚洲日韩新视频| 日韩av网站在线| 青青a在线精品免费观看| 538国产精品一区二区在线| 亚洲激情在线视频| 国产欧美日韩精品丝袜高跟鞋| 亚洲精品久久久久久久久久久| 国产精品美女视频网站| 精品久久久久久久久久久久久| 欧美激情中文字幕乱码免费| 欧美日韩国产麻豆| 欧美视频中文字幕在线| 欧美日韩一区免费| 2019中文字幕在线免费观看| 久久久久久久久久久成人| 欧美又大又硬又粗bbbbb| 最近2019中文字幕第三页视频| 欧美视频第一页| 97在线精品国自产拍中文| 成人午夜激情免费视频| 亚洲午夜精品久久久久久久久久久久| 亚洲欧美在线免费观看| 91av在线网站| 国产视频自拍一区| 精品福利在线看| 日韩欧美在线第一页| 亚洲精品自拍视频| 欧美日韩亚洲91| 3344国产精品免费看| 成人免费观看49www在线观看| 国产主播喷水一区二区| 亚洲精品久久久久久久久| 97色在线观看| 成人免费激情视频| 美女视频黄免费的亚洲男人天堂| 懂色av影视一区二区三区| 亚洲a级在线观看| 欧美成在线视频| 欧美黑人又粗大| 亚洲福利视频在线| 国产成人亚洲综合91精品| 久久久久久久久久久久久久久久久久av| 欧美wwwwww| 久久免费视频网| 日韩一区二区福利| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧洲亚洲免费在线| 狠狠躁夜夜躁人人爽超碰91| 日韩av电影在线免费播放| 欧美中文字幕在线观看| 亚洲人成在线电影| 美女精品久久久| 久久人人爽人人爽爽久久| 欧美尺度大的性做爰视频| 欧美激情成人在线视频| 中文字幕在线观看亚洲| 久久久久久噜噜噜久久久精品| 国产精品黄色影片导航在线观看| 亚洲free性xxxx护士白浆| 久久久精品久久久久| 日韩av在线免费观看| 91亚洲国产精品| 日韩电影大全免费观看2023年上| 国产成人综合av| 欧美激情精品久久久| 91精品国产91久久久久久吃药| 福利二区91精品bt7086|