CORS错误节点js和提取

时间:2019-02-15 14:32:41

标签: node.js reactjs express cors fetch

我正在尝试将浏览器的本机访存与节点Express跨域一起使用,并且遇到了一些奇怪的行为。我有一个在端口4000上运行的前端服务器,在端口5000上运行的服务器。我将CORS配置为Express这样。 (尝试使用CORS库,但效果不佳)

app.use(function (req, res, next) {

    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE, OPTIONS");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    res.header("Access-Control-Allow-Credentials", 'true');

    if (req.method === "OPTIONS") {
        res.status(200).send()
    } else {
        next();
    }

});

因此,我尝试使用以下代码获取结果:

export default {
    getUserInfo: (callback) => {
        let getUser = new Promise((resolve, reject) => {

            fetch('//localhost:5000/account/users/me', {
                credentials: "include",
            })
                .then((response) => {
                    if (response.status == 200) {
                        user = response.json();
                        resolve();
                    } else {
                        reject()
                    }
                })
        })
        return getUser;
    },
    login: (data) => {

    }
}

将凭据放在“ include”上后,我立即收到CORS错误。但是CORS标头似乎可以正常工作:

Image of CORS in chrome

1 个答案:

答案 0 :(得分:0)

事实证明,您不能使用凭据进行通配符。您需要指定要授予访问权限的URL。