关于前后端传递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相关知识点的更多相关文章

  1. 《使用this作为返回值的相关问题》

    //使用this作为返回值的相关问题: /* 如果在某个方法中把this作为返回值,则可以多次连续的调用同一个方法,从而使得代码 更加简洁,但是,这种把this作为返回值的方法可能造成实际意义的模糊, ...

  2. springAop @AfterReturning注解 获取返回值

    @AfterReturning(returning="rvt", pointcut="@annotation(com.sinosoft.redis.cache.PutCa ...

  3. Ajax - 在函数中使用Ajax怎么使用返回值 - Ajax赋值给全局变量异常的解决方法

    要使用异步操作:  async : false,//取消异步操作 //添加节点函数 function InsertNode(nodenum, nodename, type) { var returnv ...

  4. spring boot模仿reponseBody注解,自定义注解,返回值加上元数据

    简介 ResponseBody是通过RequestResponseBodyMethodProcessor起作用的. 我们的做法是写一个包装类,替换掉他 问题:怎么替换呢? 取出 Spring的List ...

  5. ajax相关知识点

    AJAX的概念,即“Asynchronous Javascript And XML” 通过在后台(浏览器的后台)与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个 ...

  6. AJAX返回值问题

    ajax同步方式获取返回值,必须以同步请求的的方式获取. //主函数部分 function confirm(id,...)//省略部分参数 { //...省略部分代码 //任务涉及专业 var Maj ...

  7. jackSon注解– @JsonInclude 注解不返回null值字段

    @Data @JsonInclude(JsonInclude.Include.NON_NULL) public class OrderDTO { private String orderId; @Js ...

  8. 深入了解MyBatis返回值

    深入了解MyBatis返回值 想了解返回值,我们须要了解resultType,resultMap以及接口方法中定义的返回值. 我们先看resultType和resultMap resultType和r ...

  9. springMVC源码分析--ViewNameMethodReturnValueHandler返回值处理器(三)

    之前两篇博客springMVC源码分析--HandlerMethodReturnValueHandler返回值解析器(一)和springMVC源码分析--HandlerMethodReturnValu ...

随机推荐

  1. jmeter关于入参转码encode问题

    我们的工作中,通过抓包经常会发现有很多入参都是被encode过一层,形成了如上图所示的样子: 这些参数我们是可以通过fiddler去转码的:但是如果我们要做jmeter的脚本,不可能每一次都手动去转码 ...

  2. java实现下载网络图片

    package com.gylhaut.picture;import java.io.*;import java.net.MalformedURLException;import java.net.U ...

  3. 软路由openwrt中替换国内镜像源(以阿里云为例)

    镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 一.打开openwrt终端 二.找到distfeeds.conf 进入opkg cd /etc/opkg 查看opkg内文件 ls 可以找到di ...

  4. python练习册 每天一个小程序 第0011题

    1 # -*-coding:utf-8-*- 2 3 4 def test(content): 5 flag = 0 6 with open('filtered_words.txt') as fp: ...

  5. Java基础 - 注解详解

    What - 什么是注解?        Annontation是Java5开始引入的新特征,中文名称叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素( ...

  6. 半吊子菜鸟学Web开发 -- PHP学习 1-基础语法

    1索引数组 $fruit = array("苹果","香蕉","菠萝"): print_r($fruit); 索引数组的初始化,有三种方式: ...

  7. 关于 OOP 和设计模式?

    这部分包含 Java 面试过程中关于 SOLID 的设计原则,OOP 基础,如类,对象, 接口,继承,多态,封装,抽象以及更高级的一些概念,如组合.聚合及关联. 也包含了 GOF 设计模式的问题.

  8. Memcached 服务特点及工作原理是什么?

    a.完全基于内存缓存的 b.节点之间相互独立 c.C/S 模式架构,C 语言编写,总共 2000 行代码. d.异步I/O 模型,使用 libevent 作为事件通知机制. e.被缓存的数据以 key ...

  9. Javascript Range对象的学习

    Range对象有几个特别难理解的属性,这里学习总结下 Range.startOffset:返回一个表示 Range 起点在 startContainer 中的位置的数字.此属性的值与Range.sta ...

  10. MySQL优化篇(一),我可以和面试官多聊几句吗?——SQL优化流程与优化数据库对象

    我可以和面试官多聊几句吗?只是想偷点技能过来.MySQL优化篇(基于MySQL8.0测试验证),上部分:优化SQL语句.数据库对象,MyISAM表锁和InnoDB锁问题. MyISAM表锁和InnoD ...