Eu fiz uma boa pesquisa nos últimos dias e não consigo fazer isso funcionar corretamente.
Estou usando o AngularJS & Webapp2 Python (Google App Engine).
Estou usando um recurso de fábrica:
app.factory('facTest', ['$resource', function ($resource) {
return $resource('http://localhost:10080/:route', {}, {
GetTest: { method: 'GET', isArray: false, params: { route: "gettest", user_id: '@user_id' } }
})
}]);
Isso funciona muito bem no WebApp2 eu preciso adicionar:
self.response.headers['Access-Control-Allow-Origin'] = '*'
Ou eu recebo um problema semelhante.
Meu problema é quando estou tentando enviar cabeçalhos personalizados por meio do AngularJS:
$http.defaults.headers.common.Authorization = 'Basic ' + "123454";
Quando faço, estou recebendo erros. Eu estou tentando adicionar um token para o cabeçalho antes de todas as chamadas HTTP.
Eu tentei adicionar isso ao WebApp2 python
self.response.headers['Access-Control-Allow-Headers'] = 'X-Requested-With, Content-Type, X-Codingpedia, Authorization'
self.response.headers['Access-Control-Allow-Methods'] = 'GET, POST, DELETE, PUT, OPTIONS'
Ainda estou recebendo o mesmo erro.
"OPÇÕES link 405 (Método não permitido)"
"XMLHttpRequest não pode carregar link . A resposta à solicitação de comprovação não passa na verificação de controle de acesso: Não 'Controle de acesso Cabeçalho -Allow-Origin 'está presente no recurso solicitado. "
Qualquer ajuda é muito apreciada. Estou fora de pistas, não tenho certeza do que mais tentar.
Obrigado em avançado.
Avanço
Eu encontrei uma maneira de fazer isso funcionar. Eu não estou mais usando:
{ method: 'GET', isArray: false,
Em vez disso, estou usando:
{ method: 'OPTIONS', isArray: false,
Além do código python:
def options(self):
Isso permitiu que eu enviasse cabeçalhos de autorização.