我使用ember-simple-auth
和ember-simple-auth-token
允許用戶登錄到我的應用程序發帖時(不能接受)。但是,當我通過POST請求使用用戶名和密碼進行身份驗證來調用後端的Django Rest Framework時,出現406(不可接受)錯誤。這在DRF可瀏覽的API中不會發生,所以後端似乎工作正常。406從灰燼到DRF API
我懷疑有關CORS的東西。我在Django中使用django-cors-headers
,並允許在我的開發環境中使用。如果有問題,我也使用django-rest-framework-jwt
和django-rest-framework-json-api
包。
我的API顯示了一個選項,然後按所發的帖子電話:
[09/Mar/2016 07:15:54] "OPTIONS /api-token-auth/ HTTP/1.1" 200 0
[09/Mar/2016 07:15:54] "POST /api-token-auth/ HTTP/1.1" 406 114
響應頭:
HTTP/1.0 406 Not Acceptable
Date: Wed, 09 Mar 2016 07:15:54 GMT
Server: WSGIServer/0.2 CPython/3.5.1
X-Frame-Options: SAMEORIGIN
Access-Control-Allow-Origin: *
Content-Type: application/vnd.api+json
Allow: POST, OPTIONS
Vary: Accept
請求頭:
POST /api-token-auth/ HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Content-Length: 2
Accept: application/json, text/javascript
Origin: http://localhost:4200
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/48.0.2564.116 Chrome/48.0.2564.116 Safari/537.36
Content-Type: application/json
Referer: http://localhost:4200/login
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
請求頭不顯示代替application/vnd.api+json
,但代替application/json
。不幸的是,無論我在Ember做什麼都能解決這個問題。我沒有成功地嘗試將我的應用的JSONAPIAdapter的標頭設置爲"Accept": "application/vnd.api+json"
,並在ENV['ember-simple-auth-token']
中嘗試設置標頭。
我認爲我聽說默認情況下,ember和DRF不兼容。你使用的是像https://github.com/dustinfarris/ember-django-adapter之類的東西嗎? – ilse2005
@ ilse2005,我正在使用'django-rest-framework-json-api'來使DRF響應與JSON API規範兼容。 –