我如何使用Ajax从json文件获取数据

时间:2018-10-22 15:04:09

标签: json ajax spring long-polling

我在我的项目中尝试实现Ajax Long Polling 我项目的结构 str 在json文件中,我有此代码

{"user": "user","two": "two","three": "three"}

当我尝试运行我的项目时,我进入了他的想法控制台:

WARN 8032 --- [nio-8080-exec-3].w.s.m.s.DefaultHandlerExceptionResolver:Failed to bind request element: org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; nested exception is java.lang.NumberFormatException: For input string: "status"

,在chrome控制台中: log

我将不胜感激

2 个答案:

答案 0 :(得分:0)

您的JavaScript文件不包含jQuery库。 您可以在引导程序库之前包含此内容(取决于jQuery)。

<script src="https://code.jquery.com/jquery-3.3.1.min.js" type="text/javascript"></script>

答案 1 :(得分:0)

根据此处提供的错误跟踪,您正在向status字段提供非数字值,该字段不会转换为Long。由于提出了NumberFormatException。您可以在控制器中添加@ExceptionHandler,也可以使用@ControllerAdvice定义全局异常处理程序来处理异常并发送适当的响应消息和状态代码。

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

@ControllerAdvice
public class ApiExceptionHandler {
    @ExceptionHandler(Exception.class)
    public ResponseEntity<Object> handlerGenericError(Exception ex){
        ex.printStackTrace();
        return new ResponseEntity<>(ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
    }
    @ExceptionHandler(MethodArgumentTypeMismatchException.class)
    public ResponseEntity<Object>handlerBadRequest(MethodArgumentTypeMismatchExceptionex){
        return new ResponseEntity<>(ex.getMessage(), HttpStatus.BAD_REQUEST);
    }
}