jquery调用spring mvc接口返回字符串匹配
背景:有个增删改页面,用jquery祭出ajax异步调用接口,spring mvc响应对象是个json字符串,jquery根据响应结果判断,如果删除成功给出提示。那么问题来了,接口里响应的字符串怎么匹配页面的字符串来判断是否删除成功?
具体场景如下:
jquery文件
getCacheDate: function(cacheName, key, operationType) {
var _this = this;
$.ajax({
url: _this.host + "getCacheData",
dataType: "json",
method: "post",
data: {
cacheName: cacheName,
key: key,
operationType: operationType
},
success: function(result) {
$(".loading").addClass("loading-hide");
if(result == "delete success"){
_this.jsonData = {};
$(".json-renderer").trigger("DeleteDataSuccess");
}else{
_this.jsonData = result;
$(".json-renderer").trigger("GetDataSuccess");
}
},
error: function(err) {
console.log(err);
$(".loading").addClass("loading-hide");
$(".json-renderer").trigger("GetDataFailed");
}
});
},
spring controller类
@RequestMapping(value = "/getCacheDate", method = RequestMethod.POST, produces = "application/json;charset=utf-8")
public @ResponseBody String getCacheDate(MemcacheBeanRequest memcacheBeanRequest)
{
// 获取缓存操作信息
String operationType = memcacheBeanRequest.getOperationType();
String cacheName = memcacheBeanRequest.getCacheName();
String key = memcacheBeanRequest.getKey(); if (StringUtils.isEmpty(operationType) || StringUtils.isEmpty(cacheName) || StringUtils.isEmpty(key))
{
return null;
} // 执行缓存操作,得到结果
return memcacheViewService.doMemcached(operationType, cacheName, key);
}
看到这里很明显了,我的getCacheData接口必须返回delete success这个字符串,去匹配jquery里的result字符串对象,才能提示删除成功。问题转化为Controller接口getCacheData返回什么。如果想当然的以为就返回字符串"delete success",那么很抱歉,这是不对的,因为Controller注解@ResponseBody要求我们返回的是一个json字符串,而不单单是一个纯字符串。假如getCacheData真的返回"delete success",那么页面会进入error分支,而不是success分支,因为页面无法解析该result文本:
[object Object]
memcacheview.js (208,11)
{
[functions]: ,
__proto__: { },
readyState: 4,
responseText: "delete success",
status: 200,
statusText: "parsererror"
}
到这里问题又转化为响应出去的json是什么。我们知道json是键值对格式的,所以不能单纯这样响应"{\"delete success\"}",这种格式一样是页面无法解析的。我们知道value肯定就是"delete success",那么key我这里选用msg,getCacheData接口返回"{\"msg\":\"delete sucess\"}",jquery判断条件改为if(result.msg == "delete sucess"),问题解决。
jquery调用spring mvc接口返回字符串匹配的更多相关文章
- Mock测试你的Spring MVC接口
1. 前言 在Java开发中接触的开发者大多数不太注重对接口的测试,结果在联调对接中出现各种问题.也有的使用Postman等工具进行测试,虽然在使用上没有什么问题,如果接口增加了权限测试起来就比较恶心 ...
- spring mvc json 返回乱码问题解决(vestion:3.x.x)
本文是转载文章,感觉比较好,如有侵权,请联系本人,我将及时删除. 原文网址:<spring mvc json 返回乱码问题解决(vestion:3.x.x)> 工程中用springmvc返 ...
- spring boot 接口返回值封装
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...
- 换一种方式编写 Spring MVC 接口
1. 前言 通常我们编写 Spring MVC 接口的范式是这样的: @RestController @RequestMapping("/v1/userinfo") public ...
- 前端页面调用Spring boot接口发生的跨域问题
最近要重构一个基于spring boot的后端API服务,需要再本地测试.在本地测试时,运行在本地的前端页面发送一个ajax请求访问后端API,然后浏览器报错blocked CORS policy. ...
- Spring MVC接口实例
概述 前文记录了MVC模式和Spring MVC的初步认识,现在记录创建一个项目,配置Spring MVC,编写接口程序. 创建项目 打开IntelliJ IDEA,点击"File-> ...
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
spring mvc使用的默认处理字符串编码为ISO-8859-1 解决方法: 第一种方法: 对于需要返回字符串的方法添加注解,如下: @RequestMapping(value="/use ...
- spring boot 接口返回值去掉为null的字段
现在项目都是前后端分离的,返回的数据都是使用json,但有些接口的返回值存在 null或者"",这种字段不仅影响理解,还浪费带宽,需要统一做一下处理,不返回空字段,或者把NULL转 ...
- Jquery调用从ashx文件返回的jsonp格式的数据处理实例
开发环境:vs2010+jquery-1.4.min.js 解决问题:网上代码比较少,好多调试不通,返回数据不用json而用jsonp主要考虑解决跨域问题 开发步骤:打开VS2010,新建一web站点 ...
随机推荐
- 记一次如何解决低版本jar包里面的bug,不适宜替换成高版本的经历
背景:目前正在迭代开发的项目,应用户要求新增一个电子文档转换的功能,即将不标准的excel文件转换为标准的excel文件(标准模板). 选择:pio ,本项目里面本来就有poi的jar包 问题:项目里 ...
- [LnOI2019]加特林轮盘赌(DP,概率期望)
[LnOI2019]加特林轮盘赌(DP,概率期望) 题目链接 题解: 首先特判掉\(p=0/1\)的情况... 先考虑如果\(k=1\)怎么做到\(n^2\)的时间复杂度 设\(f[i]\)表示有\( ...
- SMM+maven下的log4j配置打印sql
1加入依赖包 <!--LOG4日志 start --> <dependency> <groupId>org.slf4j</groupId> <ar ...
- Sub-process /usr/bin/dpkg returned an error code (1) 如何解决
cd /var/lib/dpkg sudo mv info info.bak sudo mkdir info sudo dpkg --configure -a sudo apt-get install ...
- scala学习手记36 - 容器基础
scala的容器包括Set.List和Map.三种容器的特征和Java中一样.scala为每种容器都提供了可变和不可变两种版本,分别位于scala.collection.mutable或scala.c ...
- 使用Mybatis整合spring时报错Injection of autowired dependencies failed;
这是无法自动注入,通过查找,我出错的原因在于配置文件的路径没有写对,在applicationContext.xml中是这样写的. <bean id="sqlSessionFactory ...
- spring mvc : 中文传值(post/get)中文乱码
请将以下代码放入 web.xml文件中,注意存放顺序,否则会报错.filter应该放在context-param后面: <!-- 字符过滤器 --> <filter> < ...
- yii2:doajax(post)会报500错误
yii2:doajax(post)会报500错误:这是因为yii2开启了防御csrf的攻击机制,可去先去掉,在控制器里去掉:public $enableCsrfValidation = false , ...
- fiddler抓取不到HTTPS响应
火狐浏览器也安装证书了,但还是抓取不到HTTPS类型的数据包 解决办法:设置代理时在 为所有协议使用相同代理服务器(S)前打钩
- poj3311 状压dp+floyd
先floyd预处理一遍dis,枚举所有状态,dp[ i ] [ j ]表示 以 j 为终点的状态 i 使用最小的时间 #include<map> #include<set> ...