我同時使用ApiKeyAuthentication我Tastypie資源得到以下錯誤,當我嘗試做使用AJAX和Tastypie HTTP請求:「請求頭字段授權不得」的錯誤 - 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.
任何想法關於如何解決這個問題?
這裏是請求頭從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
這裏是響應頭從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
正如你所看到的,他們都有標題授權,但授權不會工作。
這裏是我使用編輯響應頭Django的中間件: https://gist.github.com/1164697
編輯: 我想通了這個問題。我試圖連接到www.domain.com,它只接受domain.com
AJAX調用來自同一個域。我如何進行服務器端更改以允許來自外部域的請求,以及執行此操作時出現的安全問題是什麼? – egidra
我已經更新了我的回答 – antyrat
我將以下標題添加到了我的所有ajax請求中:'Access-Control-Allow-Origin':'*'。我仍然收到相同的錯誤:請求標頭字段授權不被Access-Control-Allow-Headers所允許。 – egidra