我正在尝试使用基于React的前端连接到使用Python和Google App Engine由webapp2托管的某些终结点。对于初始身份验证页面,我使用的是Google Users API。由于某种原因,我可以在本地开发服务器上写出用户的信息,但是无法使用Javascript的Fetch API检索它,因为当我尝试这样做时,它会返回None。
我尝试将用户写为字符串,但是无论返回什么都不返回。
这是Python代码:
def get(self):
user = users.get_current_user()
logout_url = users.create_logout_url('/')
login_url = users.create_login_url('/')
if user:
greeting = ('Welcome, %s! (<a href="%s">sign out</a>)' %
(user.email(), logout_url))
else:
greeting = ('<a href="%s">Sign in or register</a>.' % login_url)
if users.get_current_user():
us = users.get_current_user().email()
us = User.query(User.email == us).fetch()
if us:
pass
else:
us = User(
email= users.get_current_user().email(),
posts=[]
)
us.put()
vars = {
'data': user,
'greeting': greeting
}
self.response.headers['Content-Type'] = 'application/json'
self.response.headers.add_header('Access-Control-Allow-Origin', '*')
self.response.headers.add_header('Access-Control-Allow-Headers', 'Content-Type')
self.response.write(vars)
例如,当我访问http://localhost:8080时,我将得到响应{'data': users.User(email='i@example.com',_user_id='14123123123'), 'greeting': 'Welcome, i@example.com! (sign out)'}
。
但是,当我尝试获取它时,
const fatch = () => fetch('http://localhost:8080')
.then(data => console.log(data.text()))
.catch((error) => console.log(error))
我将收到一个没有用户信息的回复:
{'data': None, 'greeting': '<a href="/_ah/login?co…3A//localhost%3A8080/">Sign in or register</a>.'}
任何帮助将不胜感激。谢谢!