This question already has answers here:
Why does my JavaScript code receive a “No 'Access-Control-Allow-Origin' header is present on the requested resource” error, while Postman does not?

(11个答案)


2年前关闭。




我正在尝试创建一个登录表单。当我用Postman测试服务时,我会得到一个带有状态码等的body对象。

javascript - 无法通过JavaScript获取获取响应状态代码-LMLPHP

但是,通过JavaScript提取,我无法获取body对象,而我刚收到一个错误:

javascript - 无法通过JavaScript获取获取响应状态代码-LMLPHP
export const login = (username,password) => {
    return dispatch=>{
        const basicAuth = 'Basic ' + btoa(username + ':' + password);
        let myHeaders = new Headers();
            myHeaders.append('Authorization', basicAuth);
            myHeaders.append('Content-Type', 'application/json');
            fetch(`${baseUrl}api/user/login`, {
                withCredentials: true,
                headers: myHeaders
            })
            .then(function (response) {
                return response.json();
            })
            .then(function (json) {
                dispatch(setLoginInfo(json))
            })
            .catch(err =>{
                console.log(err)
                 dispatch(loginFailed())
            });
    }

}

我需要获取状态代码。

最佳答案

状态码是响应对象上的 status 属性。另外,除非您将JSON与错误响应一起使用(当然有些人会这样做),否则您需要在调用ok之前检查状态代码(或 json flag):

fetch(`${baseUrl}api/user/login`, {
    withCredentials: true,
    headers: myHeaders
})
.then(function(response) {
    console.log(response.status); // Will show you the status
    if (!response.ok) {
        throw new Error("HTTP status " + response.status);
    }
    return response.json();
})
.then(// ...

不检查请求是否成功是wrote it up on my anemic little blog这样的常见错误。

关于javascript - 无法通过JavaScript获取获取响应状态代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54900971/

10-14 10:32
查看更多