estoy recibiendo el siguiente error cuando se utiliza ApiKeyAuthentication para mis recursos Tastypie cuando intento hacer una petición HTTP usando AJAX y Tastypie:'Autorización campo de encabezado de solicitud no está permitido' error - 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.
Todas las ideas sobre cómo resolver esto?
Éstos son los encabezados de la solicitud de 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
Aquí están las cabeceras de respuesta desde 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
Como se puede ver, los dos tienen cabeceras de autorización, pero la autorización no lo hace trabajo.
Aquí es el middleware de Django que estoy usando para editar las cabeceras de respuesta: https://gist.github.com/1164697
Editar: me di cuenta del problema. Estaba intentando conectarme a www.domain.com, y solo acepta domain.com
llamadas AJAX La provienen del mismo dominio. ¿Cómo podría realizar cambios en el servidor para permitir solicitudes de dominios externos y cuáles son los problemas de seguridad presentes al hacer esto? – egidra
He actualizado mi respuesta – antyrat
Agregué el siguiente encabezado a todas mis solicitudes ajax: 'Access-Control-Allow-Origin': '*'. Todavía recibo el mismo error: campo de encabezado de solicitud Autorización no permitida por Access-Control-Allow-Headers. – egidra