import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.transform.Result;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import static com.bonengweb.config.jwtConfig.JsonConvertUtil.objectToJson;
import static com.bonengweb.util.ResponseUtils.getJsonMessage;
/**
-
对全局异常进行处理
*/
@RestControllerAdvice
public class ExceptionController {// 捕捉shiro的异常
@ResponseStatus(HttpStatus.UNAUTHORIZED)
@ExceptionHandler(ShiroException.class)
public Map<String,Object> handle401(HttpServletRequest request, HttpServletResponse response,ShiroException ShiroE) throws IOException {
response.setCharacterEncoding(“UTF-8”);
response.setContentType(“application/json; charset=utf-8”);
PrintWriter writer = response.getWriter(); ;
//具体操作
writer.write(objectToJson( getJsonMessage(false,ShiroE.getMessage())));
writer.flush();
writer.close();
return null;
}// 捕捉UnauthorizedException
@ResponseStatus(HttpStatus.UNAUTHORIZED)
@ExceptionHandler(UnauthorizedException.class)
public Map<String,Object> handle401(HttpServletRequest request, HttpServletResponse response,UnauthorizedException e) throws IOException {
response.setCharacterEncoding(“UTF-8”);
response.setContentType(“application/json; charset=utf-8”);
PrintWriter writer = response.getWriter(); ;
//具体操作
writer.write(objectToJson( getJsonMessage(false,e.getMessage())));
writer.flush();
writer.close();
return null;
}// 捕捉其他所有异常
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(Exception.class)
public ErrorInfo globalException(HttpServletRequest request, HttpServletResponse response, Throwable ex) throws IOException {
response.setCharacterEncoding(“UTF-8”);
response.setContentType(“application/json; charset=utf-8”);
PrintWriter writer = response.getWriter(); ;
//具体操作
writer.write(objectToJson( getJsonMessage(false,ex.getMessage())));
writer.flush();
writer.close();
return null;
}private HttpStatus getStatus(HttpServletRequest request) {
Integer statusCode = (Integer) request.getAttribute(“javax.servlet.error.status_code”);
if (statusCode == null) {
return HttpStatus.INTERNAL_SERVER_ERROR;
}
return HttpStatus.valueOf(statusCode);
}
// 这是我传门找到的对于ajax用的i异常返回类 这样你的反回结果在就会出现在
$.ajax({
// url: “http://119.3.222.39:8010/project/testlist”,
url: “http://localhost:8010/project/testlist”,
headers: {
"Authorization":token //此处放置请求到的用户token
},
dataType: 'JSON',
async: true,//请求是否异步,默认为异步
type: 'GET',
success: function (list) {
console.log(1);如果你用上我以上的代码后你返回结果就是会在这里。 这是前后分离的问题
$("#info").html(JSON.stringify(list));
},
});
}