4
我試圖使用djangorestframework(DRF:http://django-rest-framework.org/)查看將HTTPS PUT請求發送到RESTful API Django Web服務。由於Django的跨站點請求僞造(CSRF)保護,我無法使其工作。使用djangorestframework的HTTPS PUT請求
PUT請求旨在允許未經身份驗證的用戶添加資源。
我曾考慮/嘗試:
- 禁用CSRF - 不能接受的。 API與非API服務在相同的Django實例上運行。禁用CSRF保護的風險太大。
- 在PUT請求(我控制客戶端)上使用
X-Requested-With: XMLHttpRequest
標頭。不起作用 - 我仍然得到CSRF錯誤。 - 在PUT視圖上使用
@crsf_exempt
裝飾器。如果可以的話,我會 - 框架定義了一個類,而不是一個視圖。
我目前最好的選擇是自己編寫PUT視圖,而不使用DRF的View類。然後,我可以成功使用@crsf_exempt
修飾器。
我想使用DRF的View類 - 但看不到如何。你可以嗎?
由於我問了這個問題,我已經轉移到django-tastypie - 所以我不能輕易驗證這一點。但是,你的答案看起來很有說服力! – Erik 2012-07-15 04:01:09