@RequestBody和@RequestParam注解以及返回值,ajax相关知识点
关于前后端传递json数据这块查了好多资料,好多地方还是不清楚,先记录一下清楚的地方。
如果我们前端使用ajax发json数据,一般都加上contentType:'application/json;charset=utf-8',如果加上这个,那么后端一定得使用@RequestBody接收,这俩是成对出现的,然后@RequestBody只能接收请求体的数据所以只能接post请求,然后使用了application/json这种形式只能发送json字符串。
同样的,如果不加application/json那么后端一般使用@RequestParam接收,@RequestParam接收的是地址栏的数据所以只能接get请求,这个时候前台不能发json字符串,可以发json对象。
ajax有三种传递data的方式:json对象{“username”:”chen”,”nickname”:”alien”}、json字符串’{“username”:”chen”,”nickname”:”alien”}‘,只能用单引号、标准参数name=chen&id=3,感觉json形式用的多点。
如果后端要跳页面的时候返回值类型必须是String,这个时候不能加@ResponseBody或者@RestController注解,因为这两个注解会将返回数据解析成字符串,如果返回值是对象会返回json对象。如果不想在后端跳页面,可以在前端利用ajax,在回调函数中使用window.location.href="xxx.html";跳转页面。
后端接收未使用@RequestBody注解,只有对象作为参数接收,打印出来是引用地址,如果是@RequestBody,打印出来是json对象。在后台service层都可以直接做参数使用,没有区别,具体有啥区别不清楚。
@RequestBody和@RequestParam注解以及返回值,ajax相关知识点的更多相关文章
- 《使用this作为返回值的相关问题》
//使用this作为返回值的相关问题: /* 如果在某个方法中把this作为返回值,则可以多次连续的调用同一个方法,从而使得代码 更加简洁,但是,这种把this作为返回值的方法可能造成实际意义的模糊, ...
- springAop @AfterReturning注解 获取返回值
@AfterReturning(returning="rvt", pointcut="@annotation(com.sinosoft.redis.cache.PutCa ...
- Ajax - 在函数中使用Ajax怎么使用返回值 - Ajax赋值给全局变量异常的解决方法
要使用异步操作: async : false,//取消异步操作 //添加节点函数 function InsertNode(nodenum, nodename, type) { var returnv ...
- spring boot模仿reponseBody注解,自定义注解,返回值加上元数据
简介 ResponseBody是通过RequestResponseBodyMethodProcessor起作用的. 我们的做法是写一个包装类,替换掉他 问题:怎么替换呢? 取出 Spring的List ...
- ajax相关知识点
AJAX的概念,即“Asynchronous Javascript And XML” 通过在后台(浏览器的后台)与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个 ...
- AJAX返回值问题
ajax同步方式获取返回值,必须以同步请求的的方式获取. //主函数部分 function confirm(id,...)//省略部分参数 { //...省略部分代码 //任务涉及专业 var Maj ...
- jackSon注解– @JsonInclude 注解不返回null值字段
@Data @JsonInclude(JsonInclude.Include.NON_NULL) public class OrderDTO { private String orderId; @Js ...
- 深入了解MyBatis返回值
深入了解MyBatis返回值 想了解返回值,我们须要了解resultType,resultMap以及接口方法中定义的返回值. 我们先看resultType和resultMap resultType和r ...
- springMVC源码分析--ViewNameMethodReturnValueHandler返回值处理器(三)
之前两篇博客springMVC源码分析--HandlerMethodReturnValueHandler返回值解析器(一)和springMVC源码分析--HandlerMethodReturnValu ...
随机推荐
- jmeter关于入参转码encode问题
我们的工作中,通过抓包经常会发现有很多入参都是被encode过一层,形成了如上图所示的样子: 这些参数我们是可以通过fiddler去转码的:但是如果我们要做jmeter的脚本,不可能每一次都手动去转码 ...
- java实现下载网络图片
package com.gylhaut.picture;import java.io.*;import java.net.MalformedURLException;import java.net.U ...
- 软路由openwrt中替换国内镜像源(以阿里云为例)
镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 一.打开openwrt终端 二.找到distfeeds.conf 进入opkg cd /etc/opkg 查看opkg内文件 ls 可以找到di ...
- python练习册 每天一个小程序 第0011题
1 # -*-coding:utf-8-*- 2 3 4 def test(content): 5 flag = 0 6 with open('filtered_words.txt') as fp: ...
- Java基础 - 注解详解
What - 什么是注解? Annontation是Java5开始引入的新特征,中文名称叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素( ...
- 半吊子菜鸟学Web开发 -- PHP学习 1-基础语法
1索引数组 $fruit = array("苹果","香蕉","菠萝"): print_r($fruit); 索引数组的初始化,有三种方式: ...
- 关于 OOP 和设计模式?
这部分包含 Java 面试过程中关于 SOLID 的设计原则,OOP 基础,如类,对象, 接口,继承,多态,封装,抽象以及更高级的一些概念,如组合.聚合及关联. 也包含了 GOF 设计模式的问题.
- Memcached 服务特点及工作原理是什么?
a.完全基于内存缓存的 b.节点之间相互独立 c.C/S 模式架构,C 语言编写,总共 2000 行代码. d.异步I/O 模型,使用 libevent 作为事件通知机制. e.被缓存的数据以 key ...
- Javascript Range对象的学习
Range对象有几个特别难理解的属性,这里学习总结下 Range.startOffset:返回一个表示 Range 起点在 startContainer 中的位置的数字.此属性的值与Range.sta ...
- MySQL优化篇(一),我可以和面试官多聊几句吗?——SQL优化流程与优化数据库对象
我可以和面试官多聊几句吗?只是想偷点技能过来.MySQL优化篇(基于MySQL8.0测试验证),上部分:优化SQL语句.数据库对象,MyISAM表锁和InnoDB锁问题. MyISAM表锁和InnoD ...