Curl CORS在带有选项的请求时失败(状态为0的响应)

Curl CORS在带有选项的请求时失败(状态为0的响应),curl,cors,django-rest-framework,django-cors-headers,Curl,Cors,Django Rest Framework,Django Cors Headers,更新:由于我得到了一些新的信息,请重写问题。历史记录在编辑中可见 发行介绍 我有一个运行在子域api.nrzonline.nl上的django rest framework应用程序。前端ng2+webpack应用程序正在域本身nrzonline.nl上运行。当使用ng2 restangular向API发送请求时,我在控制台中收到以下错误: zone.js OPTIONS http://api.nrzonline.com/project/ net::ERR_EMPTY_RESPONSE EXC

更新:由于我得到了一些新的信息,请重写问题。历史记录在编辑中可见

发行介绍
我有一个运行在子域
api.nrzonline.nl
上的
django rest framework
应用程序。前端
ng2+webpack
应用程序正在域本身
nrzonline.nl
上运行。当使用
ng2 restangular
向API发送请求时,我在控制台中收到以下错误:

 zone.js OPTIONS http://api.nrzonline.com/project/ net::ERR_EMPTY_RESPONSE
 EXCEPTION: Response with status: 0  for URL: null
当前问题
经过相当多的curls测试后,我发现当发送带有
选项的飞行前请求时,所有请求都失败了

带有
-X GET
的请求正常工作:

curl 'api.nrzonline.nl/skill/' -X GET
[{"id":1,"category":{"id":1,"title":"skill-a",...}]
(飞行前)带有
-X选项的请求失败,没有响应

curl 'api.nrzonline.nl/skill/' -X OPTIONS
curl: (52) Empty reply from server
在Django开发服务器上的API上本地执行此
-x OPTIONS
请求不会出现任何问题

服务器设置

  • CORS\u ORIGIN\u ALLOW\u ALL=True
  • CORS\u ALLOW\u METHODS
    为默认设置,允许
    选项
  • CORS\u ALLOW\u头文件处于默认状态
中间件:

MIDDLEWARE = [
    ...
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    ...
]
我尝试过的

  • 我已经了解到,服务器可能需要HTTPS请求,但目前没有活动的SSL证书。()尽管如此,我还是试着用
    --不安全的
    卷曲
    ()
  • 使用
    -H“内容类型:text/plain”
    ()
问题
我遗漏了什么/做错了什么,因此带
-X选项的飞行前操作失败了。欢迎提供任何可能的解决方案的提示、解释或参考。

答案积分归我的兄弟,我网站的主持人

这个问题是相关的。默认情况下,DirectAdmin只允许
GET
POST
HEAD

这些设置位于
include/etc/nginx/webapps.conf作为:

if ($request_method !~ ^(GET|HEAD|POST)$ ) {
    return 444;
}
添加
选项应该可以解决问题。删除或注释掉代码块以允许任何请求方法

但是,修改
/etc/nginx/webapps.conf
可能会导致DirectAdmin在新的HTTPD更新期间重写此文件。文件
/custombuild/costum/nginx/conf
用于生成
conf
文件。在此处进行修改可以防止丢失调整