问题标签 [django-cors-headers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2181 浏览

jquery - 无法让 CORS 与 contenType 一起使用 - Django Rest Framework

我在这个愚蠢的小问题上浪费了一整天!

django-rest-framework在前端使用我的api和backbone.js。

添加选项时,我无法向服务器发出任何请求contentType

这是我正在尝试做的一个简单示例:

OPTIONS 失败并且 POST 永远不会发送。

选项请求标头:

现在我不知道为什么 OPTIONS 会失败。我用的是django的corsheaders app,设置如下:

0 投票
5 回答
28306 浏览

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

I am developing a 1-page application in AngularJS using and Django Rest Framework + Django CORS Headers.

My problem is that the "csrftoken" cookie never shows up in my browser when I have contacted the backend.

For example: I am doing a login using a post. I get the "sessionid" cookie properly but the "csrftoken" never shows up and therefor I cannot do proper posts from my client since I will get denied due the lack of the csrf token.

  • I have analyzed the response headers from the API and the csrftoken is not ther.
  • I have looked directly in the rest API browser and it shows up fine there.
  • Just to point out, I can do my first POST to login since Django Rest Framework only forces CSRF for authenticated users. If I try to relogin it will fail since the "sessionid"-cookie it present.
  • I am not interessted in bypassing the CSRF protection as some posts on stackoverflow suggests.

Some code snippets from front/backend. These are unfinnished snippets, so dont get hung up on poorly written code.

Backend API LoginView

Client side AngularJS Login Controller

}]);

Anyone with any good tips/ideas/examples?

0 投票
2 回答
850 浏览

django - 执行从 AngularJS 到允许 CORS 的 Django 服务器的 ajax 调用

我正在使用 AngularJS 和基于 Django-Tastypie 的 REST API 开发一个 webapp 来获取数据。

为了能够执行 ajax 请求,我使用 django-cors-header 框架(https://github.com/ottoyiu/django-cors-headers)在 django 上启用了跨源资源共享,但我在 chrome 检查器中注意到预检在主请求被取消之前发送的请求(一个 OPTIONS 请求)几乎立即被取消,我在 Django 服务器日志中看到:"OPTIONS /api/airport/19643 HTTP/1.1" 301

我发现一些关于此的帖子建议'X-Requested-With'从标头中删除参数($http.get 不允许 Access-Control-Allow-Origin 但 $.ajax 是)但这仅解决了 GET 请求的问题。因此,如果我尝试发送 PUT 或 POST 请求,则会发送预检请求并被取消!

这是我在启用 CORS 但不从标题中删除前一个参数时在检查器上看到的内容: 在此处输入图像描述

对于 PUT 请求,我也收到相同的错误。

我真的看不出问题出在哪里,所以我希望有人能指出我正确的方向。

非常感谢

0 投票
1 回答
3007 浏览

django - 使用 Django 和 CORS 的 AngularJS 应用程序中的 cookie 消失了

我正在使用 Django Rest Framework 和 Django CORS Headers 作为后端 API 构建一个 AngularJS 应用程序。

直到今天一切正常。突然csrfcookieandsessionid cookie停止出现在 Chrome 中。

我看到 API 使用csrfcookie. Chrome 没有在开发工具中显示它,但是我在chrome://settings/cookies.

AngularJS

Django API

0 投票
10 回答
575713 浏览

ajax - CORS:当凭据标志为真时,无法在 Access-Control-Allow-Origin 中使用通配符

我有一个涉及的设置

前端服务器(Node.js,域:localhost:3000)<---> 后端(Django,Ajax,域:localhost:8000)

浏览器 <-- webapp <-- Node.js(服务应用程序)

浏览器 (webapp) --> Ajax --> Django(服务 ajax POST 请求)

现在,我的问题是 webapp 用于对后端服务器进行 Ajax 调用的 CORS 设置。在 chrome 中,我不断得到

当凭证标志为真时,不能在 Access-Control-Allow-Origin 中使用通配符。

也不适用于Firefox。

我的 Node.js 设置是:

在 Django 中,我正在使用这个中间件 和这个

webapp 发出这样的请求:

因此,webapp 发送的请求标头如下所示:

这是响应标头:

我哪里错了?!

编辑1:我一直在使用chrome --disable-web-security,但现在希望事情能够真正起作用。

编辑 2: 答案:

所以,我的解决方案django-cors-headers配置:

0 投票
2 回答
2765 浏览

django - 使用 angular 向 django-rest 发送 DELETE 请求被解释为 OPTIONS

我尝试使用带有 angularjs 的 django-rest 构建的 rest API,但我遇到了问题。当我发送 DELETE 请求时,django-rest 看到 OPTIONS。

这就是我所做的:

我的 Django 视图.py

我已经添加了带有 django-cors-headers 的 CORS,并且所有的 Origins 都被接受(CORS_ORIGIN_ALLOW_ALL = True)

我有一个角度服务来管理这个 $resource

现在,使用 ng-click="deleteNode()" 的按钮,我称这个控制器为

console.log() 每次都返回“nok”,在我的 django 控制台中,我看到了

仅供参考,我的角度版本是 v1.2.0-rc.3 然后我添加到我的应用程序中

但没有任何改变:(

一个主意 ?

编辑

我认为问题来自$resource,也许我在实施中错了。我试图用 $http 而不是 $resource 来删除一个节点

一切都很好。

0 投票
1 回答
919 浏览

python - 在 Heroku 上的 Django 应用程序中为 CORS 指定 URL

我在 Heroku 中有一个使用 Django 运行的应用程序。

现在我开始开发一个 Phonegap 应用程序,我想用我的 Heroku 应用程序工作。

由于 CORS(跨域资源共享)保护,我无法使其工作。所以我需要排除一些网址(不是所有应用程序)才能使我的 Phonegap 应用程序正常工作。

我试过安装django-cors-headers,但它似乎不起作用。

为了测试它,我打电话来获取一个 csrf_token。

我将此添加到我的 setting.py 中(当然按照指南,将所有设置为默认值):

这是我尝试进行的 Ajax 调用:

但是我将此标记为红色,并显示为错误和空响应字段:

0 投票
1 回答
97 浏览

django - 在两个域之间共享共享 html 内容时出错

我有一个在域 A 中运行的 Django Web 服务应用程序。该应用程序使用内容文件来存储一些 HTML 文件和所需的图像。在域 B 上运行的另一个应用程序想要访问我的服务和内容。我在我的域 A 中启用了 CORS。现在我可以从域 B 访问在域 A 上运行的 Web 服务以及来自域 A 的图像文件。但是我在内容文件中有一些 HTML。我无法从域 B 访问该 HTML 内容。

使用 angularjs 实现的域 Bng-include用于呈现我的 HTML 页面。CORS 也在域 B 中启用。

应用程序settings.py域A

0 投票
4 回答
1519 浏览

javascript - Django Rest Framework/Angular JS Preflight 选项请求

我使用 Django REST Framework 编写了一个 API。对于身份验证,我使用 django-oauth2-provider:https ://github.com/caffeinehit/django-oauth2-provider

我在我的设置页面中配置了 cors(使用 Corsheaders 中间件。)

我的客户端应用程序是用 Angular JS 构建的。但是,每次我们发出任何请求(包括 GET 请求)时,都会发出一个选项请求。此选项请求大约需要 50 - 500 毫秒,具体取决于请求。

api 调用看起来像“ https://example.com/api/v1/posts/?page=1 (2, 3, 4...etc)”

我需要弄清楚为什么提出这个请求,以及如何提高应用程序的性能。

0 投票
1 回答
1526 浏览

python - 从另一个服务器进程访问 Django API 时如何避免跨域资源共享错误?

我正在构建一个具有两个独立组件的 WebApp:

  1. Web 访问者将访问的“前端”node.js 应用程序服务器(在 localhost:3099 上运行)
  2. 管理我的 ORM 并与数据库对话的“后端”Django 服务器(在 localhost:3098 上运行)。Web 访问者根本不会直接与该服务器交互。该服务器只是发布一个 RESTful API,供前端使用。

我将实施安全限制,以防止除前端服务器之外的任何人访问后端的 API。

后端发布的 API 端点之一如下所示:http://localhost:3098/api/myApi/.

我可以像这样从 curl 成功地访问该 API:curl -X POST -H "Content-Type: application/json" -d '{"myKey1":"myVal1", "myKey2":"myVal2"}' http://localhost:3098/api/myApi/

但是,当我尝试使用 Javascript 从我的前端服务器访问相同的 API 时,我在浏览器的控制台窗口中收到以下错误:

为了解决这个问题,采取了以下步骤:

  1. 我安装了django-cors-headers
  2. 我添加'corsheaders'到我的INSTALLED_APPS
  3. 我添加'corsheaders.middleware.CorsMiddleware'MIDDLEWARE_CLASSES上面'django.middleware.common.CommonMiddleware'
  4. 我宣布了白名单:CORS_ORIGIN_WHITELIST = ('localhost', '127.0.0.1',)

但是,实施 django-cors-headers 似乎没有任何区别。我仍然收到相同的 CORS 错误。我该如何解决这个问题?