sto ottenendo il seguente errore durante l'utilizzo di ApiKeyAuthentication per le mie risorse Tastypie quando provo a fare una richiesta HTTP utilizzando AJAX e Tastypie:'richiesta campo di intestazione di autorizzazione non è consentito' errore - Tastypie
XMLHttpRequest cannot load http://domain.com/api/v1/item/?format=json&username=popo&api_key=b83d21e2f8bd4952a53d0ce12a2314c0ffa031b1. Request header field Authorization is not allowed by Access-Control-Allow-Headers.
Tutte le idee su come risolvere questo?
Qui ci sono le intestazioni di richiesta da Chrome:
Request Headersview source
Accept:*/*
Accept-Charset:
ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:
origin, authorization, access-control-allow-origin, accept, access-control-allow-headers
Access-Control-Request-Method:
GET
Ecco le intestazioni di risposta da Chrome:
Response Headersview source
Access-Control-Allow-Headers:
Origin,Content-Type,Accept,Authorization
Access-Control-Allow-Methods:
POST,GET,OPTIONS,PUT,DELETE
Access-Control-Allow-Origin:*
Connection:keep-alive
Content-Length:0
Content-Type:
text/html; charset=utf-8
Date:Fri, 11 May 2012 21:38:35 GMT
Server:nginx
Come si può vedere, entrambi hanno le intestazioni per l'autorizzazione, ma l'autorizzazione non lo fa lavoro.
Ecco il middleware Django che sto usando per modificare le intestazioni di risposta: https://gist.github.com/1164697
Edit: ho capito il problema. Stavo cercando di collegarmi a www.domain.com e accetta solo domain.com
chiamate AJAX sono provenienti dallo stesso dominio. Come potrei apportare modifiche ai server side per consentire richieste da domini esterni e quali sono i problemi di sicurezza presenti in questo modo? – egidra
Ho aggiornato la mia risposta – antyrat
Ho aggiunto la seguente intestazione a tutte le mie richieste ajax: 'Access-Control-Allow-Origin': '*'. Ricevo ancora lo stesso errore: campo dell'intestazione della richiesta L'autorizzazione non è consentita da Access-Control-Allow-Headers. – egidra