2013-09-20 1 views
0

У меня есть веб-сайт, запущенный в моем собственном домене, и он имеет форму, которая имеет действие, указывающее на мой домен google appspot. Приложение приложение пятно работает очень простой питон скрипт, который находится ниже:Происхождение null не разрешено с помощью Access-Control-Allow-Origin с приложением App App App

import cgi,webapp2 


class ProblemRedirect(webapp2.RequestHandler): 

    def post(self): 
     print(cgi.escape(self.request.get('problem_text'))) 
     print(cgi.escape(self.request.get('student_name'))) 
     print(cgi.escape(self.request.get('student_email'))) 



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

Вот HTML для моей формы:

<div id="mainForm"> 
      <form id="problem_form" class="problem_form" action="http://www.summit-tech-help.appspot.com" method="post"> 
       <textarea id="problemText" placeholder="Explain your problem in detail. Click the black bar on top, for rules!" form="problem_form" rows="15" cols="45" name="problem_text" autofocus required></textarea></br> 
       <input type="text" placeholder="Enter your email..." name="student_email" required/></br> 
       <input type="text" placeholder="Your name..." name="student_name" required/></br> 
       <input type="submit" value="Submit!" required/> 
      </form> 
     </div> 

Эта форма находится на другом веб-сервере, но обрабатывается appspot скрипт. Однако, всякий раз, когда я отправляю свою форму, я получаю сообщение об ошибке:

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

Есть ли что-нибудь, что я делаю неправильно? Кроме того, я развернул приложение из Google App Engine Launcher на OSX. Когда я нажимаю «запустить» в Launcher, он запускается на localhost: 8080, так что я смогу увидеть «печать», когда она работает? Благодаря!

~ Carpetfizz

ответ

1

Вы должны добавить это в обработчик:

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

замена звезды characer (который принимает каждый узел) с помощью координат вы хотите принять. См. this link

+0

Спасибо! Это сработало отлично. – Carpetfizz

Смежные вопросы