GAE weapp2 Access-Control-Allow-Origin 错误

GAE weapp2 Access-Control-Allow-Origin Error

我在使用 webapp2 用户身份验证时遇到此错误。请求的资源上不存在 'Access-Control-Allow-Origin' header。

如何在重定向前添加访问权限 header?

重定向代码: self.redirect(users.create_login_url(self.request.uri))

代码:

class Authenticate(webapp2.RequestHandler):
    def get(self):
      user = users.get_current_user()
      cookie_value = self.request.cookies.get('user')

      if user==cookie_value and user!=None:
          self.response.headers['Content-Type'] = 'text/plain'
          self.response.write('Success')
      else:
          self.request.headers['Access-Control-Allow-Origin'] = '*'
          self.redirect(users.create_login_url(self.request.uri))

self.redirect 调用之前,执行

self.response.headers['Access-Control-Allow-Origin'] = '*'

或您希望为 header 设置的任何值——默认情况下 self.redirect 会生成新响应 object,但您可以使用

更改它
return self.redirect(users.create_login_url(self.request.uri,
                     response=self.response)
 def redirect(self, uri, permanent=False, abort=False, code=None,body=None)

def redirect(uri, permanent=False, abort=False, code=None, 
                                         body=None,request=None, response=None)

所以,我认为你应该将第二个调用为(如果你想传递响应对象):

return webapp2.redirect(users.create_login_url(self.request.uri),True,False,None
                                                       ,None,None,self.response)

参考Webapp2 Source Code