javascript - 在 Google App Engine 服务器中实现 CORS

标签 javascript google-app-engine jquery-mobile cors

我在 GAE 上有一个应用,可以检查用户是否使用 Google 用户服务登录 Google。如果用户未登录,则应该重定向到登录页面来自 Google。

下面是尝试执行此操作的代码:

class RegistrationHandler(webapp2.RequestHandler):
def post(self):
    user = users.get_current_user()
    if user:
        username = self.request.get(user.nickname())
        callback = self.request.get('callback')
        member = Member.get_by_id('username')
        if member:
            self.response.write("A member with that id already exists")
        else:
            m_username=self.request.get('username')
            m_name=self.request.get('name')
            member = Member(id=m_username, username=m_username, member_name=m_name)
            member.put()
        if callback:
            self.response.write(callback + '(' + member.toJSON() + ')')
        else:
            self.response.write(member.toJSON())
    else:
         self.redirect(users.create_login_url(self.request.uri))

但是,当我从我的 jQuery Mobile 应用程序发出请求时,我收到错误消息:

XMLHttpRequest cannot load http://localhost:18090/. No 'Access-Control-Allow-Origin'    

header is present on the requested resource. Origin 'http://localhost:63343' is  

therefore not allowed access.

所以我做了一些研究,发现这是由 CORS 失败引起的。 所以我进一步挖掘并找到了一些信息 this网站说要使用这段代码:

class CORSEnabledHandler(webapp.RequestHandler):
   def get(self):
     self.response.headers.add_header("Access-Control-Allow-Origin", "*")
     self.response.headers['Content-Type'] = 'text/csv'
     self.response.out.write(self.dump_csv())

在服务器上。 作为一个新手,我不太确定如何实现这一点。 javascript 中的其他建议有点复杂。

最佳答案

如果网站概述的内容足够,则添加以下行

self.response.headers.add_header("Access-Control-Allow-Origin", "*")

在您的帖子处理程序内和您的 if user 条件内。

当然,这需要在客户端结合适当的 JavaScript 来完成。 http://www.html5rocks.com/en/tutorials/cors/

关于javascript - 在 Google App Engine 服务器中实现 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23861596/

相关文章:

google-app-engine - Google App Engine 实例在标准环境中突然关闭

jquery - 使用 jquery mobile 进行选择导航

javascript - Google map API 无法绘制不同大陆

javascript - 鼠标悬停在图像上带有文本的 DIV

适用于 Google Cloud Storage 和大文件的 Python 客户端

javascript - 如何修复或解决 iPhone 上的亚像素处理问题?

android - 在 Android 应用程序的页面转换期间看到的白色背景

javascript - React Hooks 数组中元素的 setState

javascript - 使用 AngularJS 和输入 [type=file] 显示文件列表

java - Google App Engine 项目未在 Eclipse 中启动