1

我在使用 Python 通过 Google App Engine 发送电子邮件时遇到问题。我有一个网站在不同的主机上运行,​​其中包含在 GAE 中发布到 Python 脚本的表单。该脚本工作正常,但如果我在我的 Python 脚本中添加“发送邮件”功能会失败。我已经添加:

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

但我仍然得到错误:

XMLHttpRequest cannot load http://www.summit-tech-help.appspot.com/. Origin http://summittechhelp.x10.mx is not allowed by Access-Control-Allow-Origin. 

这是我的 Python 脚本。

import cgi,webapp2
from google.appengine.api import mail

class ProblemRedirect(webapp2.RequestHandler):

    def post(self):
        self.response.headers['Access-Control-Allow-Origin']='*'
        problem_text = (cgi.escape(self.request.get('problem_text')))
        student_name =(cgi.escape(self.request.get('student_name')))
        student_email =(cgi.escape(self.request.get('student_email')))
        sender_address= "Summit Tech Help <techhelpsummit@gmail.com>"
        subject = "New Support Ticket!"
        body= "test."
        mail.send_mail(sender_address,sender_address,subject,body)




application = webapp2.WSGIApplication([
    ('/', ProblemRedirect),
], debug=True)

注释行是导致错误的原因。任何帮助,将不胜感激!谢谢!

~地毯嘶嘶声

我还尝试添加:

http_headers:
    Access-Control-Allow-Origin: "*"

到我的 app.yaml 文件,但我不断收到错误消息:

Error parsing yaml file:
Unexpected attribute "http_headers" for mapping type script.
  in "/Users/ajay/summit-tech-help/app.yaml", line 13, column 1
4

1 回答 1

0

尝试添加以下行:

self.response.headers['Access-Control-Allow-Methods'] = 'POST'

直接在代码中,而不是在 app.yaml 中。

于 2013-09-20T07:23:48.590 回答