问题描述:
<script>
var name=document.getElementById('username')
function getMe(){
axios.get('/getMessage') .then(function (response) {
console.log(response);
}).catch(function (error) {
console.log(error);
});
}
getMe();
</script>
后台代码:
@GetMapping(value="/getMessage")
public Map<String,Object> getMessage(HttpServletRequest request, HttpServletResponse response)
{
Map<String,Object> map = new HashMap<String,Object>();
try {
String username="";
username=(String)request.getSession().getAttribute("user");
System.out.println("查询的名字是:"+username);
map.put("user", username);
map.put("result", true);
map.put("msg","查询成功!");
return map;
}catch (Exception e){
System.out.println("查询失败");
map.put("result", false);
map.put("msg","查询失败!");
return map;
}
}
前端结果:
response错误信息:
{"timestamp":"2019-06-14T13:41:27.400+0000","status":500,"error":"Internal Server
Error","message":"Circular view path [getMessage]: would dispatch back to the current
handler URL [/getMessage] again. Check your ViewResolver setup! (Hint: This may be the
result of an unspecified view, due to default view name
generation.)","trace":"javax.servlet.ServletException: Circular view path [getMessage]:
would dispatch back to the current handler URL [/getMessage] again. Check your
ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default
view name generation.)\r\n\tat
org.springframework.web.servlet.view.InternalResourceView.prepareForRendering(InternalRes
ourceView.java:209)\r\n\tat
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)\r\
n\tat
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)\r\n\tat
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n\tat
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n\tat
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)\r\n\tat
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)\r\n\tat
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n\tat
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)\r
\n\tat
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)\r\n\t
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n\tat
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n\tat
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\r\n\tat
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n\tat java.lang.Thread.run(Thread.java:745)\r\n","path":"/getMessage"}
问题分析:
首先anxios请求发送是成功的,问题可以定位到controller中,后对分析可知,controller返回的map是键值对,以json的形式,返回的时候想转成json,但是返回的解析成modelandview了
问题解决方案:
方案一:把该类用RestController进行注释
方案二:在该方法前用ResponseBody进行注释