我正在爲django-rest-framework
爲我的應用程序開發REST API。Django REST框架API僅適用於API項目
一切正常,只要我使用兩種:
- 可瀏覽的API 在該API被建立在同一個項目的模板內
- AJAX請求
如果我嘗試從最初的「主」項目(我正在爲其構建一個API)中訪問API,例如從同一臺機器上的另一個Django項目中訪問API,我總是會遇到錯誤。
這裏是runserver
跟蹤的成功 API調用:
[21/Nov/2014 12:11:01] "GET /api/test_session/ HTTP/1.1" 200 9208
同樣的終點,但是從主項目外(它失敗):
[21/Nov/2014 12:11:14] "GET /api/test_session/ HTTP/1.1" 200 58
我使用jQuery的ajax
函數發送我的API調用,並設置了error
回調。然而,我收到的errorThrown
是空的,並且textStatus
屬性只說「錯誤」。
如何從oustide訪問我的API?我正在使用默認驗證後端(基於會話)。
200響應提示成功響應。答案的形式是否失敗?如果是這樣,請顯示差異。 – 2014-11-21 13:08:32
Web服務器確實返回200.但$ .ajax()會觸發'error'回調而不是'success'。換句話說,當我從主項目之外調用API時,我沒有得到預期的JSON響應。另一方面,如果我在主項目的原始html頁面(使用'TemplateView')*完全相同的調用*,則會觸發'success',並收到預期的JSON消息。 – Buddyshot 2014-11-21 13:14:49
然後你的問題不是REST API,而是Javascript。如果你可以用ipython和[requests](http://docs.python-requests.org/en/latest/)(或類似的東西)進行外部呼叫,你是否親自檢查過? – 2014-11-21 13:16:39