django 和 Angular 4 中的错误 请求的资源上不存在“Access-Control-Allow-Origin”标头

Posted

技术标签:

【中文标题】django 和 Angular 4 中的错误 请求的资源上不存在“Access-Control-Allow-Origin”标头【英文标题】:error in django and angular 4 No 'Access-Control-Allow-Origin' header is present on the requested resource 【发布时间】:2018-11-13 03:37:30 【问题描述】:

这是我的django 代码

我在测试删除功能时收到此错误。

请求中没有“Access-Control-Allow-Origin”标头 资源。因此不允许 Origin 访问。回应有 HTTP 状态码 500。

def delete(self):
        ''' Deletes an existed file or folder. '''
        file    = self.request.GET.get('path').lstrip("/")
        path    = os.path.join(self.root,file)
        response = FileManagerResponse(path)
        response.set_response()
        if (self.is_safe_path(path)):
           if os.path.isdir(path):
               shutil.rmtree(path)
           elif os.path.isfile(path):
               os.remove(path)
           return JsonResponse(response.response)
        else:
           return self.fileManagerError(path=file)

这是我的 Angular 4 代码

   deleteFile(id) 
       let url = `http://127.0.0.1:8000/files/connectors/python/filemanager?time=1528047056540&mode=delete&path=$id&_=1528045987217`;
      console.log(url);
      return this.http.get(url);
  

【问题讨论】:

添加 response.response['Header'] = 'response['Cache-Control'] = 'no-cache'' techiediaries.com/django-cors 【参考方案1】:

看看这两个帖子,它会解决你的错误:

How can I enable CORS on Django REST Framework

AngularJS + Django Rest Framework + CORS ( CSRF Cookie not showing up in client )

【讨论】:

以上是关于django 和 Angular 4 中的错误 请求的资源上不存在“Access-Control-Allow-Origin”标头的主要内容,如果未能解决你的问题,请参考以下文章

Angular 4 对 Django Rest 框架的 HTTP 请求

未提供 Angular + Django REST 身份验证凭据

Django 会话导致 Angular 出现 JWT“令牌丢失或不正确”错误

angular 4 和django 1.11.1 前后端交互 总结

当表单出现错误时,带有 angular.js 表单提交的 Django 不起作用

angular.js 中的 Django formset 等效项