Django Rest Framework / Angular JS Preflight选项

时间:2014-09-08 08:00:11

标签: django angularjs cors django-rest-framework django-cors-headers

我的应用程序将DRF用于后端并使用AngularJS使用API​​。 对于某些特定的API,我面临以下问题。

XMLHttpRequest cannot load `http://localhost:8000/someurl`. The request was redirected to `'http://localhost:8000/someurl/'`, which is disallowed for cross-origin requests that require preflight.

我正在使用django-cors-headers,我已经确保了我的设置。

  • 所有人都可以使用科尔斯。
  • Append_slash设置为True。
  • CORS_PREFLIGHT_MAX_AGE已设置。
  • cors头中间件设置正确。

前端服务器在localhost:3000上运行。 有帮助吗? 感谢。

1 个答案:

答案 0 :(得分:2)

我想我对这个问题有了合理的发现。总有一天可能对别人有帮助。 AngularJS $资源删除' /'来自网址。并且预检OPTIONS请求网址'http://localhost:8000/someURL'被重定向到'http://localhost:8000/someURL/',因为默认为django APPENDS_SLASH。因此预检请求被重定向。

要么我需要强制$资源不要删除' /'从URL或强制django到APPEND_SLASH = False并相应地更新我的网址。