Tôi nhận được lỗi sau khi sử dụng ApiKeyAuthentication tài nguyên Tastypie của tôi khi tôi cố gắng làm một yêu cầu HTTP sử dụng AJAX và Tastypie:'Yêu cầu tiêu đề lĩnh vực Authorization không được phép' lỗi - 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.
Bất kỳ ý tưởng về cách giải quyết vấn đề này?
Sau đây là các tiêu đề yêu cầu từ 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
Dưới đây là các tiêu đề phản hồi từ 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
Như bạn có thể thấy, cả hai đều có tiêu đề cho phép, nhưng uỷ quyền không công việc.
Đây là middleware django mà tôi đang sử dụng để chỉnh sửa các tiêu đề phản ứng: https://gist.github.com/1164697
Edit: tôi đã tìm ra vấn đề. Tôi đã cố gắng kết nối với www.domain.com và chỉ chấp nhận domain.com
Cuộc gọi AJAX đến từ cùng một tên miền. Làm cách nào để tôi thực hiện các thay đổi phía máy chủ để cho phép các yêu cầu từ các miền bên ngoài và các vấn đề bảo mật hiện tại bằng cách thực hiện việc này? – egidra
Tôi đã cập nhật câu trả lời của mình – antyrat
Tôi đã thêm tiêu đề sau vào tất cả các yêu cầu ajax của mình: 'Access-Control-Allow-Origin': '*'. Tôi vẫn nhận được cùng một lỗi: Yêu cầu trường tiêu đề Ủy quyền không được cho phép bởi Access-Control-Allow-Headers. – egidra