2014-11-21 79 views
0

我正在爲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?我正在使用默認驗證後端(基於會話)。

+0

200響應提示成功響應。答案的形式是否失敗?如果是這樣,請顯示差異。 – 2014-11-21 13:08:32

+0

Web服務器確實返回200.但$ .ajax()會觸發'error'回調而不是'success'。換句話說,當我從主項目之外調用API時,我沒有得到預期的JSON響應。另一方面,如果我在主項目的原始html頁面(使用'TemplateView')*完全相同的調用*,則會觸發'success',並收到預期的JSON消息。 – Buddyshot 2014-11-21 13:14:49

+0

然後你的問題不是REST API,而是Javascript。如果你可以用ipython和[requests](http://docs.python-requests.org/en/latest/)(或類似的東西)進行外部呼叫,你是否親自檢查過? – 2014-11-21 13:16:39

回答