ajax和springmvc的请求响应原理——深入理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法
1,四大重要部分:
请求链接
post请求和get请求
请求参数形式
响应内容形式
2,从springmvc的controller角度,controller能接收到请求的前提
请求链接必须对应
post和get请求方式必须对应
请求参数形式必须对应
3,从springmvc的controller角度,controller能成功响应的前提
请求中指明的响应内容形式必须和controller的produces指明的一致
controller的@ResponseBody的有与无
controller的setViewName的有与无
4,进一步说明
post请求:请求参数形式有两类:一类是Form Data,提交的是Object对象;另一类是Json,提交的是json字符串
From Data:(Object参数)可以在controller中使用@RequestParam和简单pojo方式接收
Json:(json字符串)可以在controller中使用@RequestBody接收
get请求:请求参数形式只有一类:query string parameter,会被设置到url后面
query string parameter:(key/value)可以在controller中使用@RequestParam和简单pojo方式接收
5,jQuery的ajax方法:
$.get :默认使用 GET 方式 (无Content-Type,附加到url后) 无指定响应内容形式,由controller决定
$.post:默认使用 POST方式 传递附加参数时(Content-Type:application/x-www-form-urlencoded) 没有附加参数时(无Content-Type) 无指定响应内容形式,由controller决定
$getJSON:默认使用 GET 方式(无Content-Type) 专门返回json(Content-Type:application/json)
$load:默认使用 GET 方式(无Content-Type) - 传递附加参数时自动转换为 POST 方式(Content-Type:application/x-www-form-urlencoded) 无指定响应内容形式,由controller决定
6,总结
请求方式关系请求参数形式:get请求不能发送json字符串和Form Data,导致没有content-type请求头
post请求能够发送Form Data和json字符串,对应的content-type是Content-Type:application/x-www-form-urlencoded和Content-Type:application/json
请求参数形式关系后端controller的参数接收:Form Data可以由简单pojo和@RequestParam接收;json字符串只能使用@RequestBody接收
query string parameter可以由简单pojo和@RequestParam接收
7,参考:深入理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法(https://www.cnblogs.com/ranzige/p/jquery_get_ajax.html)
ajax和springmvc的请求响应原理——深入理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法的更多相关文章
- Web 请求响应原理(转)
用Java实现Web服务器 减小字体 增大字体 摘要:WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信,H ...
- SpringMVC之请求响应(上)
1.OutPutController package com.tz.controller; import java.util.Map; import org.springframework.stere ...
- 初探Asp.net请求机制原理 1
web原理 请求---响应 而一个 简单的请求 响应中包含太多知识,只有把 请求响应原理搞懂才能在web的世界里好好翱翔(注:自已的整理的知识参考博友们东西或自已所想,没有盗版权的意思,在此说明就不引 ...
- content-type常见类型辨析(以ajax与springmvc前后端交互为例)
博客搬家: content-type常见类型辨析(以ajax与springmvc前后端交互为例) 在http报文的首部中,有一个字段Content-type,表示请求体(entity body)中的数 ...
- 详解Ajax请求(一)前言——同步请求的原理
我们知道,ajax是一种异步请求的方式,想要了解异步请求,就必须要先从同步请求说起.常见的同步请求的方式是form表单的提交,我们先从一种同步请求的示例说起. 我们希望输入姓名可以从后台得到身份证号. ...
- Spring系列 SpringMVC的请求与数据响应
Spring系列 SpringMVC的请求与数据响应 SpringMVC的数据响应 数据响应的方式 y以下案例均部署在Tomcat上,使用浏览器来访问一个简单的success.jsp页面来实现 Suc ...
- HTTP协议请求响应过程和HTTPS工作原理
HTTP协议 HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本. 服务器按照一定规则,发送到客户端(一般是浏览器)的传送通信协议.与之类似的还有文件传送协议(file transfer p ...
- ajax请求响应中用window.open打开新窗口会被浏览器拦截的解决方式
一.问题描述 ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是会被浏览器给拦截了,需要用户点下. 二.问题分析 浏览器之所以拦截新开窗口是因为该操作并 ...
- asp.net请求响应模型原理随记回顾
asp.net请求响应模型原理随记回顾: 根据一崇敬的讲师总结:(会存在些错误,大家可以做参考) 1.-当在浏览器输入url后,客户端会将请求根据http协议封装成为http请求报文.并通过主sock ...
随机推荐
- MindSpore特性支持类
MindSpore特性支持类 Q:请问MindSpore支持梯度截断吗? A:支持,可以参考梯度截断的定义和使用. Q:如何在训练神经网络过程中对计算损失的超参数进行改变? A:暂时还未有这样的功能. ...
- C++标准模板库(STL)——vector常见用法详解
vector的定义 vector<typename> name; 相当于定义了一个一维数组name[SIZE],只不过其长度可以根据需要进行变化,比较节省空间,通俗来讲,vector就是& ...
- 使用JavaScript获取url(request)中的参数
这次是使用JavaScript来获取url(request)中的参数 在日常页面编写的过程中为了方便操作在<script>中通过使用window.location.href="要 ...
- Appium_adb常用命令总结
以下为在工作学习过程中总结的常用的adb命令,用来做后续参考和查阅: 一.常用命令 显示当前运行的全部模拟器: adb devices 安装应用程序: adb install 应用程序.apk 备注 ...
- Django(64)频率认证源码分析与自定义频率认证
前言 有时候我们发送手机验证码,会发现1分钟只能发送1次,这是做了频率限制,限制的时间次数,都由开发者自己决定 频率认证源码分析 def check_throttles(self, request): ...
- NEXTCLOUD 常见错误
HTTP请求头"Strict-Transport-Security"没有配置为至少"15552000"秒出于增强安全性考虑推荐按照安全提示中的说明启用HSTS ...
- 基于GIS的国土空间规划平台建设
本期介绍基于地理信息平台的国土空间规划平台的规划辅助编制应用.在梳理国土空间规划科学流程的基础上,将规划编制各关键环节信息化.工具化.智能化:充分发挥清华同衡大数据与智能模型相结合的定量评估.精准 ...
- CentOS安装ffmpeg+h264
CentOS安装ffmpeg+h264 前言 坑!坑!坑! 全是坑. 本文安装系统环境为CentOS7.2.我这里提供安装所需的四个源码包,均需要编译安装.所有组件最好都安装最新的稳定版,或者下载使用 ...
- excel VBA返回选中单元格区域的行数、列数,以及活动单元格的行号和列号
Private Sub Worksheet_SelectionChange(ByVal Target As Range) '可以直接sub(),不然选择就会触发vba Dim rows_coun ...
- 用户RFM模型及应用
RMF含义 R(Recency)(用户粘性,越小越好):用户最近一次交易时间的间隔.R值越大,表示用户交易发生的日期越久,反之则表示用户交易发生的日期越近 F(Frequency)(用户忠诚度,越大越 ...