我正在为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