Javascript 使用Java脚本从Spring Boot API端点获取数据时出现问题

Javascript 使用Java脚本从Spring Boot API端点获取数据时出现问题,javascript,java,spring-boot,rest,web-applications,Javascript,Java,Spring Boot,Rest,Web Applications,我在web应用程序上工作,遇到了使用Java脚本从端点获取数据的问题。如果我在浏览器中键入endpoint adres,它可以很好地工作,但在脚本中却无法工作。response.ok返回False 下面是脚本: (function() { function requestAuthorization() { let response = fetch("http://localhost:8080/authorizationData")

我在web应用程序上工作,遇到了使用Java脚本从端点获取数据的问题。如果我在浏览器中键入endpoint adres,它可以很好地工作,但在脚本中却无法工作。response.ok返回False

下面是脚本:

(function() {

    function requestAuthorization() {
        let response = fetch("http://localhost:8080/authorizationData")
            .then(response => response.json());

        if (response.ok) {
            let json = response.json();
            alert(json);
        } else {
            alert("HTTP response not ok");
        }
    }

    requestAuthorization();

})();
这是控制器:

@RestController
class AuthController {

    private final AuthService service;

    AuthController(AuthService service) throws IOException {
        this.service = service;
    }

    @GetMapping("/authorizationData")
    public ResponseEntity<AuthData> authorize() throws IOException {
        return ResponseEntity.ok(service.getAuthData());
    }
}
怎么了?如果您对我的工作有任何其他建议,我将很高兴听到

编辑


脚本和运行它的HTML文件都位于类路径的静态目录中。

您应该这样做:

// mark your function as async
async function requestAuthorization() {
    // always try using const rather than let
    const response = await fetch("http://localhost:8080/authorizationData");

    if (response.ok) {
        const json = response.json();
        alert(json);
    } else {
        alert("HTTP response not ok");
    }
}

fetchapi返回一个承诺。因此,它是异步的。因此,当您访问
response.ok
时,承诺很可能尚未解决。将async添加到函数中,并等待对FetchAPI的调用来解决问题。否则,您可以将if子句直接放入
then
块中,它也可以工作。这能解决你的问题吗?
// mark your function as async
async function requestAuthorization() {
    // always try using const rather than let
    const response = await fetch("http://localhost:8080/authorizationData");

    if (response.ok) {
        const json = response.json();
        alert(json);
    } else {
        alert("HTTP response not ok");
    }
}