GAE weapp2访问控制允许原因错误

时间:2015-03-17 23:05:45

标签: google-app-engine python-2.7 google-api webapp2

使用webapp2用户身份验证时出现此错误。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。

如何在重定向之前添加访问标头?

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

CODE:

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))

2 个答案:

答案 0 :(得分:0)

self.redirect来电之前,请执行

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

或者您希望为该标头设置的任何值 - self.redirect默认情况下会生成一个新的响应对象,但您可以使用

更改它
return self.redirect(users.create_login_url(self.request.uri,
                     response=self.response)

答案 1 :(得分:0)

 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