Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从Spring Controller为ajax调用返回错误消息字符串的最佳实践是什么?

从Spring Controller为ajax调用返回错误消息字符串的最佳实践是什么?
EN

Stack Overflow用户
提问于 2018-04-12 05:24:43
回答 2查看 694关注 0票数 0

我有一个Spring控制器,我从那里返回一个字符串。基本上,我使用JSONObject和JSONArray,最后生成一个字符串并返回它。像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RequestMapping(value = "getValue")
    public @ResponseBody
    String getValue(){

    JSONObject jassonObject = new JSONObject();

    JSONArray jassonArray = new JSONArray();

    jassonObject.put("mykey",jassonArray);

    And finally:
    return jassonObject.toString();
}

但是假设在生成此JSONObject时,如果我遇到任何异常,我想返回该异常消息。这就是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try {
JSONObject jassonObject = new JSONObject();

JSONArray jassonArray = new JSONArray();

jassonObject.put("mykey",jassonArray);

return jassonObject.toString();
} catch(Exception ex) {
return the exception?
}

我的问题是,如何正确地将这个异常值作为错误返回,并从ajax调用错误函数中正确地获取它?

EN

回答 2

Stack Overflow用户

发布于 2018-04-12 07:40:41

Ajax回调处理程序依赖于http状态代码。超过200 OK将触发错误回调。每个http状态代码可能有不同的错误处理程序。此外,在出现错误时,建议始终返回非200 OK代码。

请在以下链接中找到示例:How to respond with HTTP 400 error in a Spring MVC @ResponseBody method returning String?

票数 1
EN

Stack Overflow用户

发布于 2018-04-23 04:43:05

好吧,在学习了一些之后,我发现,在为Ajax请求生成JSONObject时出现异常的情况下,我们应该用http Bad request响应代码进行响应。就像我的例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try {
JSONObject jassonObject = new JSONObject();

JSONArray jassonArray = new JSONArray();

jassonObject.put("mykey",jassonArray);

return jassonObject.toString();
} catch(Exception ex) {
       jassonObject.put("errorMessageKey", e.getMessage()); // generating      
                                        //json object with error message
         response.setStatus(400); // bad request
         response.setContentType("application/json");
         response.setCharacterEncoding("UTF-8");
         response.getWriter().write(jassonObject.toString()); 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49788606

复制
相关文章
spring security设置login的ajax返回
序 本文介绍下如何处理security的login的ajax返回 自定义AuthenticationEntryPoint public class UnauthorizedEntryPoint implements AuthenticationEntryPoint { @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException
code4it
2018/09/17
7670
ajax parsererror报错,jQuery为ajax请求返回“ parsererror”[通俗易懂]
我一直在从jquery收到针对Ajax请求的“ parsererror”,我尝试将POST更改为GET,以几种不同的方式(创建类等)返回数据,但我似乎无法弄清楚问题出在哪里。
全栈程序员站长
2022/09/07
1.5K0
微信 API 中调用客服消息接口提示错误返回限制
用土话来说,就是你的客服消息不是你想法就可以发的,微信限制公众号主动发送消息的能力。
HoneyMoose
2023/02/11
1.1K0
微信 API 中调用客服消息接口提示错误返回限制
spring security ajax登录及返回
本文讲述一下如何自定义spring security的登录页,网上给的资料大多过时,而且是基于后端模板技术的,讲的不是太清晰,本文给出一个采用ajax的登录及返回的前后端分离方式。
code4it
2018/09/17
2.3K0
RocketMQ消息队列的最佳实践
tags可由应用自行设置,只有生产者在发送消息设置了tags,消费方在订阅消息时才可以利用tags通过broker做消息过滤:
JavaEdge
2021/10/18
5750
RocketMQ消息队列的最佳实践
tags可由应用自行设置,只有生产者在发送消息设置了tags,消费方在订阅消息时才可以利用tags通过broker做消息过滤:
JavaEdge
2021/12/07
3240
ajax返回url,window.open(url)错误
功能场景:是一个文件预览功能,前端调用接口之后,后端返回一个url,前端打开这个url 就可以看到文件的预览内容
xyzzz
2021/07/15
2.4K0
Spring AOP的最佳实践
本文为《Spring揭秘》第11章的阅读笔记,该书对Spring的基本原理进行了深度剖析,是我目前看过的最好的Spring中文资料。 一、异常处理 1、Java异常处理 Java中的异常层次体系如下图
三哥
2018/06/15
1.2K0
消息队列实现复制的最佳实践
把消息复制到多个节点,不仅可解决丢消息问题,还可保证消息服务的HA。所以都会把MQ配置集群模式,并开启消息复制保证系统。
Bug开发工程师
2020/09/14
1K0
Spring Data 最佳实践
摘要: ORM的出现解决了程序猿学习数据库学历成本,也加快了开发的速度。程序猿无需再学习数据库定义语言DDL以及数据库客户端,也无需关注建表这些繁琐的工作,同时也降低了数据库结构变更管理中与DBA频繁沟通的成本。 本文节选自电子书《Netkiller Architect 手札》 第 12 章 Spring Data 最佳实践 目录 12.1. 分类表 12.2. 为字段增加索引 12.3. 复合索引 12.4. 一对多实例 12.5. ManyToMany 多对多 12.6. 外键级联删除 ORM的出现解决
netkiller old
2018/03/06
1.8K0
Spring Boot 最佳实践
本文翻译自国外论坛 medium,原文地址:https://medium.com/@raviyasas/spring-boot-best-practices-for-developers-3f3bdffa0090
wayn
2023/08/07
2560
Spring Boot 最佳实践
Spring Boot 最佳实践
本文翻译自国外论坛 medium,原文地址:https://medium.com/@raviyasas/spring-boot-best-practices-for-developers-3f3bdffa0090
wayn
2023/08/28
2010
Spring Boot 最佳实践
Spring Boot最佳实践
这是来自于e4developer的一篇微服务最佳实践: Spring Boot是用于开发微服务的最流行的Java框架。在本文中,我将与你分享自2016年以来我在职业开发中使用Spring Boot所采用的最佳实践,这些都是基于我的个人经验和认可的Spring Boot专家的着作。 在本文中,我将重点介绍Spring Boot特有的实践(大多数时候,也适用于Spring项目)。 以下最佳实践未按特定顺序排列。 使用自动配置 Spring Boot的一个主要功能是使用自动配置,当在类路径classpa
lyb-geek
2018/08/16
1.1K0
RocketMQ/Kafka等消息队列复制的最佳实践
期望MQ具备高性能、高可用和数据一致性。很多MQ都声明这些特性全部支持,但都有前置条件。
JavaEdge
2021/02/22
5770
NodeJS错误处理最佳实践
NodeJS的错误处理让人痛苦,在很长的一段时间里,大量的错误被放任不管。但是要想建立一个健壮的Node.js程序就必须正确的处理这些错误,而且这并不难学。如果你实在没有耐心,那就直接绕过长篇大论跳到“总结”部分吧。
竹清
2018/08/31
1.6K0
NodeJS错误处理最佳实践
Spring Boot Admin最佳实践
在Spring Boot Actuator中提供很多像health、metrics等实时监控接口,可以方便我们随时跟踪服务的性能指标。Spring Boot默认是开放这些接口提供调用的,那么就问题来了,如果这些接口公开在外网中,很容易被不法分子所利用,这肯定不是我们想要的结果。在这里我们提供一种比较好的解决方案。
迹_Jason
2019/05/29
1.1K0
Spring Data Redis 最佳实践!
使用该注解的方法当缓存存在时,会从缓存中获取数据而不执行方法,当缓存不存在时,会执行方法并把返回结果存入缓存中。一般使用在查询方法上,可以设置如下属性:
macrozheng
2020/03/26
1.6K0
spring mvc 返回json报406错误
在使用spring mvc返回json格式的数据。我们都知道直接使用@ResponseBody注解就可以。
凯哥Java
2019/07/01
1.4K0
Spring Data JPA 最佳实践
Spring Data Jpa框架的目标是显著减少实现各种持久性存储的数据访问层所需的样板代码量。Spring Data Jpa存储库抽象中的中央接口是Repository。它需要领域实体类以及领域实体ID类型作为类型参数来进行管理。该接口主要用作标记接口,以捕获要使用的类型并帮助您发现扩展该接口的接口。CrudRepository、JpaRepository是更具体的数据操作抽象,一般我们在项目中使用的时候定义我们的领域接口然后继承CrudRepository或JpaRepository即可实现实现基础的CURD方法了,但是这种用法有局限性,不能处理超复杂的查询,而且稍微复杂的查询代码写起来也不是很优雅,所以下面看看怎么最优雅的解决这个问题。
芋道源码
2019/12/13
2.8K0
点击加载更多

相似问题

Spring Controller + Ajax返回字符串

34

Ajax消息最佳实践

30

组织从Ajax调用返回的JavaScript的最佳实践

11

从AJAX调用返回和显示数据的最佳实践

74

从函数返回错误的最佳实践是什么?

53
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文