Http 错误:"status":404,"error":"Not Found","message":"No message available”,”path":""

在对代码进行调试的时候,前端页面报了一个错:

1 {"timestamp":"2019-09-02T02:55:45.555+0000","status":404,"error":"Not Found","message":"No message available”,”path":"/order/createorder"}

  这个 bug 出现的原因是因为犯了一个更加低级的错误。。。但是我觉得解决问题的分析思路还是可以借鉴的,这里总结一下。

  前端页面显示错误信息,但是在我的后端程序中没有一个报错信息,甚至没有一个异常抛出,而且有关数据成功写入数据库,订单信息写入数据库,商品库存减少,销量增加,一切数据在后端逻辑来说毫无问题,但是前端为什么报错呢?于是我把问题固定在前端的 html 文件上了,回去排查前端代码,打开 chrome 的检查,刷新页面,添加断点,重新刷新,查看变量值:

  发现状态 status 确实是 success,变量数据都完全正确,怎么回事,经过一上午的排查,前端貌似没有错。再仔细分析下前端页面报的错,404,not found,”path”:”/order/createorder”,难不成后端的控制层代码有错,导致前端页面响应结果没有找到正确的路径。回去检查一下,果不其然,在控制层方法的注解上面漏了 @ResponseBody 注解。

@ResponseBody

先来看看为什么要添加这个注解

  The course documentation states that this annotation serves the function to: ensure that the result will be written to the HTTP response by an HTTP Message Converter (instead of an MVC View).

  The annotation means is that the returned value of the method will constitute the body of the HTTP response.

  The returned value of the method will constitute the body of the HTTP response.

  说的都是一个意思,就是 @ResponseBody 用于对方法进行注释, 表示该方法的返回的结果将直接写入 HTTP 响应正文(Http Response Body)中。我之前控制层代码里有返回值,类型为 CommonReturnType 的通用返回值类型,我把返回值去掉后,方法改为 void,无任何返回值, 虽然在前端的调试中,各种数据依然正常,但是前端页面获取不到控制层方法的返回值,在 response body 中无内容,导致点击前端页面的按钮不会有任何现象发生,虽然此时后端逻辑正确无误,数据库入库操作都实现了。所以我这里必须给该方法一个返回值,且要通过注解形式将返回值加到 Http response body 中。 如果没有这个注解,就会抛出上面的 responseText 异常信息。

Ref1

Ref2

原文地址:https://www.cnblogs.com/dogeLife/p/11447394.html

时间: 2024-10-21 23:25:15

Http 错误:"status":404,"error":"Not Found","message":"No message available”,”path":""的相关文章

There was an unexpected error (type=Not Found, status=404).

Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Mon Jan 22 09:30:31 CST 2018 There was an unexpected error (type=Not Found, status=404). No message available 网址Url  输错了, 我的具体如下 http://l

springboot 集成jsp问题: There was an unexpected error (type=Not Found, status=404). /WEB-INF/jsp/index.jsp

关于spring boot 集成 jsp 出现的如下问题: There was an unexpected error (type=Not Found, status=404). /WEB-INF/jsp/index.jsp 解决的方法总结如下:  聚合模块(POM)下,如果出现如上故障 : 1.先检查有无漏掉导入 tomcat-embed-jasper  jsp引擎,springboot 内置的tomcat中没有此依赖,如果没有,idea控制台就会输出如下错误代码:   而前台页面则报的错误如

MAC OSX 中解决编译“'cc' failed with exit status 1”错误 和clang: error: unknown argument 错误

错误例子: error: command 'cc' failed with exit status 1 clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future] clang: note: this will be a hard error (cannot be downgraded to a warning) in the fu

HTTP Status 404 - There is no Action mapped for namespace [/] and action name [Action!Method]错误解决

按照书本上的Struts2的例子,运行会出现错误: HTTP Status 404 - There is no Action mapped for namespace [/] and action name [sayHelloAction!sayStruts2] ... 貌似在struts.xml中配置action的method不会出错,而直接在jsp中写“Action!Method.action”就会报错. 搜索许久没有发现解决办法,后来发现第二种写法叫做“DMI”,会产生安全隐患,在stru

DVWA--登录页面错误问题 469 | | PHP Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:\web\DVWA\dvwa\includes\dvwaPage.inc.php:469

1 // MySQL PDO Prepared Statements (for impossible levels) 2 $db = new PDO('mysql:host=' . $_DVWA[ 'db_server' ].';dbname=' . $_DVWA[ 'db_database' ].';charset=utf8', $_DVWA[ 'db_user' ], $_DVWA[ 'db_password' ]); 3 $db->setAttribute(PDO::ATTR_ERRMOD

Method POST, Status (canceled) error message

I have the following code which is giving me a Method POST, Status (canceled) error message: $(document).ready(function() { var xhr = false; get_default(); $('#txt1').keyup( function() { if(xhr && xhr.readyState != 4){ alert("abort"); xh

s2h-HTTP Status 404 - No result defined for action and result input错误解决

今天做个小项目,用的是ssh,结果在运行的时候出现HTTP Status 404 - No result defined for action and result input的错误. 首先认真检查所有的配置文件,命名空间,路径,名称都没问题. 于是各种查资料,最后发现,是validate校验器搞的鬼. 分析: 因为我把方法都写在RegisterAction,而检验器文件名为RegisterAction-validation.xml,就是对RegisterAction里的所有方法都起作用,以至于

记录一次MVC 3.0错误 HTTP 404您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。

在部署到IIS7时,MVC3报了一个找不到资源的错误,文件肯定是有的,而且页面是肯定报错的,也就说内部运行错误了,而MVC把错误没有抛出来而已: 所以对症下药,发觉我的项目里面用了rexs进行多语言,然后发现App_GlobalResources这里面的文件夹是空的,按道理来说,不应该是没有文件才对. 所以我把App_GlobalResources文件夹重新上传即可,问题解决. 以上是我的问题解决,以下我将介绍其它的类似的问题处理方法: 一.路径配置问题(转载) 有时在程序运行的时候会出现“HT

MVC自定义错误页404静态页

昨天公司要求给所有项目添加自定义404错误页,具体的要求实现的有以下几点: 1.实现自定义错误(如各种error,404等)跳转到指定的页面 2.所指定的页面输出的http状态值必须是404或其他指定的statecode 3.跳转到的自定义错误页面必须是.html后缀结尾 关于第一点,这个很简单,大家都知道,只需要在webconfig里面对customErrors节点作相应设置,如下 <customErrors mode="On" defaultRedirect="Er