2014-11-21 42 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

回答