Javascript Axios获取请求成功,但数据属性为空?
我有一个简单的反应组件:Javascript Axios获取请求成功,但数据属性为空?,javascript,node.js,http,axios,httpresponse,Javascript,Node.js,Http,Axios,Httpresponse,我有一个简单的反应组件: import React from "react" import axios from "axios" export default () => { const axios = require("axios") axios.get("http://localhost:8000/user").then(function(res) { // handle success console.log(res) }) return (
import React from "react"
import axios from "axios"
export default () => {
const axios = require("axios")
axios.get("http://localhost:8000/user").then(function(res) {
// handle success
console.log(res)
})
return (
<div>
Hello
</div>
)
}
但是,以下是axios响应的console.log:
数据属性是空字符串。我不知道为什么我不能在axios get请求中获取此数据
编辑:(请求后端代码)
后端
//imports here, then:
passport.use(
new Auth0Strategy(
{
domain: "bla.eu.auth0.com",
clientID: "afjgnrtkngewmofmwlefmlwems",
clientSecret:
"jngnsknkankjangkjangjknKJJKGKAHBJVvgjvVgjVbhJBjhbJbj",
callbackURL: "http://localhost:8000/callback",
audience: "https://bla.eu.auth0.com/userinfo",
responseType: "code",
scope: "openid email profile",
},
function(accessToken, refreshToken, extraParam, profile, done) {
return done(null, profile)
}
)
)
passport.serializeUser(function(user, done) {
done(null, user)
})
passport.deserializeUser(function(user, done) {
done(null, user)
})
const app = express()
app.use(cors({ origin: "http://localhost:8001" }))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))
app.use(
session({ secret: "secret_key", resave: true, saveUninitialized: true })
)
app.use(passport.initialize())
app.use(passport.session())
app.use(function(req, res, next) {
res.locals.loggeedIn = false
if (req.session.passport && typeof req.session.passport.user !== undefined) {
res.locals.loggedIn = true
}
next()
})
app.get("/", function(req, res, next) {
res.send("Root")
})
app.get(
"/login",
passport.authenticate(
"auth0",
{
domain: "bla.auth0.com",
clientID: "kafmkafmkamfkamfka",
redirectUri: "http://localhost:8000/callback",
audience: "https://bla.auth0.com/userinfo",
responseType: "code",
scope: "openid email profile",
},
function(req, res, next) {
res.redirect("/")
}
)
)
app.get("/logout", function(req, res, next) {
req.logout()
res.redirect("/")
})
app.get(
"/callback",
passport.authenticate("auth0", {
failureRedirect: "/failure",
}),
function(req, res) {
res.redirect("/user")
}
)
app.get("/user", function(req, res, next) {
res.send(req.user)
})
app.get("/failure", function(req, res, next) {
res.send("Failure")
})
app.listen(8000, function() {
console.log("running")
})
为什么要导入
axios
两次-使用require
和import
?哦,对不起!但是刚刚修复了它,并没有改变问题!无论如何谢谢你!你能试着写下这个,告诉我它是否有效吗?get(“=>{//handle success console.log(res)})你知道当前用户是如何确定的吗?Cookies?如果你得到的是200,当用户无法确定时,我们可以假设你的API返回一个空响应吗?Passport在中间件上工作。这意味着如果你附加中间件,而不仅仅是用户获取请求中的用户。否则它将是空的。你的代码app.get(“/user“,没有passport中间件,因此用户不在。如果您希望在所有请求中使用用户,则必须在所有请求中启用中间件。如serilizer deserilizer。请阅读passport js文档。这可能对您有所帮助。”。
//imports here, then:
passport.use(
new Auth0Strategy(
{
domain: "bla.eu.auth0.com",
clientID: "afjgnrtkngewmofmwlefmlwems",
clientSecret:
"jngnsknkankjangkjangjknKJJKGKAHBJVvgjvVgjVbhJBjhbJbj",
callbackURL: "http://localhost:8000/callback",
audience: "https://bla.eu.auth0.com/userinfo",
responseType: "code",
scope: "openid email profile",
},
function(accessToken, refreshToken, extraParam, profile, done) {
return done(null, profile)
}
)
)
passport.serializeUser(function(user, done) {
done(null, user)
})
passport.deserializeUser(function(user, done) {
done(null, user)
})
const app = express()
app.use(cors({ origin: "http://localhost:8001" }))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))
app.use(
session({ secret: "secret_key", resave: true, saveUninitialized: true })
)
app.use(passport.initialize())
app.use(passport.session())
app.use(function(req, res, next) {
res.locals.loggeedIn = false
if (req.session.passport && typeof req.session.passport.user !== undefined) {
res.locals.loggedIn = true
}
next()
})
app.get("/", function(req, res, next) {
res.send("Root")
})
app.get(
"/login",
passport.authenticate(
"auth0",
{
domain: "bla.auth0.com",
clientID: "kafmkafmkamfkamfka",
redirectUri: "http://localhost:8000/callback",
audience: "https://bla.auth0.com/userinfo",
responseType: "code",
scope: "openid email profile",
},
function(req, res, next) {
res.redirect("/")
}
)
)
app.get("/logout", function(req, res, next) {
req.logout()
res.redirect("/")
})
app.get(
"/callback",
passport.authenticate("auth0", {
failureRedirect: "/failure",
}),
function(req, res) {
res.redirect("/user")
}
)
app.get("/user", function(req, res, next) {
res.send(req.user)
})
app.get("/failure", function(req, res, next) {
res.send("Failure")
})
app.listen(8000, function() {
console.log("running")
})