CORS - Używanie AJAX do publikowania w usłudze internetowej Python (webapp2)

To będzie długie:

Ok, więc opracowuję gadżet kalendarza google, który wysyła żądania do interfejsu API REST Pythona webapp2 hostowanego w Google App Engine.

Problem pojawia się, gdy próbuję coś POST, co nie pozwala mi z powodu CORS. W Chromes 'DevTools jest napisane:

Method: OPTIONS.

Status: (failed) Request header field Content-Type is not allowed by Access-Control-Allow-Headers.

Origin https://hq34i4geprnp5vci191ljfuhcoerscl4-a-calendar-opensocial.googleusercontent.com is not allowed by Access-Control-Allow-Origin. 

Wiem, że dzieje się tak z powodu CORS. Tutaj:

Ajax - „Lokalny host pochodzenia nie jest dozwolony przez Access-Control-Allow-Origin”

Mówi, że muszę dodać

Access-Control-Allow-Origin: *

Do nagłówków, ale potem znowu jestem nowy na ajax i zastanawiam się, czy jest to zrobione w ten sposób:

    $.ajax({
        type: "POST",
        url: "https://myapp.appspot.com/service",
        contentType: "application/json; charset=utf-8",
        data: data,
        beforeSend: function (request)
        {
            request.setRequestHeader("Access-Control-Allow-Origin", "*");
        }
        success: function(data) {
              alert("AJAX done");
        }
    });

Dodając te nagłówki, otrzymujemy wynikróżne (co mnie zastanawia, czy pochodzenie zostało dozwolone, choć tak naprawdę nie wiem):

Method: OPTIONS.

Status: (failed) Request header field Content-Type is not allowed by Access-Control-Allow-Headers.

XMLHttpRequest cannot load https://myapp.appspot.com/service. Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers. 

Znalazłem nawet to:

http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/

Co pozwala mi wykonywać żądania GET, ale bez tego chciałbym się dowiedzieć, jak to zrobić.

Również na moim serwerze mam to:

...
    class webService(webapp2.RequestHandler):
         options(self):
               self.response.write('options')

         post(self):
               self.response.write('post')

    application = webapp2.WSGIApplication([
        ('/', MainPage),
        ('/service', webService)
    ], debug=True)

Nie wiem, czy muszę dodać coś więcej do serwera, ani nie znalazłem informacji mówiących, że muszę. Myślę też, że jestem blisko, aby osiągnąć żądanie CORS, ale nie mogę znaleźć przykładu, który to wszystko wyjaśnia.

Proszę pomóż.

questionAnswers(3)

yourAnswerToTheQuestion