问题标签 [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.
jquery - 无法让 CORS 与 contenType 一起使用 - Django Rest Framework
我在这个愚蠢的小问题上浪费了一整天!
我django-rest-framework
在前端使用我的api和backbone.js。
添加选项时,我无法向服务器发出任何请求contentType
。
这是我正在尝试做的一个简单示例:
OPTIONS 失败并且 POST 永远不会发送。
选项请求标头:
现在我不知道为什么 OPTIONS 会失败。我用的是django的corsheaders app,设置如下:
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?
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 请求,我也收到相同的错误。
我真的看不出问题出在哪里,所以我希望有人能指出我正确的方向。
非常感谢
django - 使用 Django 和 CORS 的 AngularJS 应用程序中的 cookie 消失了
我正在使用 Django Rest Framework 和 Django CORS Headers 作为后端 API 构建一个 AngularJS 应用程序。
直到今天一切正常。突然csrfcookie
andsessionid cookie
停止出现在 Chrome 中。
我看到 API 使用csrfcookie
. Chrome 没有在开发工具中显示它,但是我在chrome://settings/cookies
.
AngularJS
Django API
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 设置是:
webapp 发出这样的请求:
因此,webapp 发送的请求标头如下所示:
这是响应标头:
我哪里错了?!
编辑1:我一直在使用chrome --disable-web-security
,但现在希望事情能够真正起作用。
编辑 2: 答案:
所以,我的解决方案django-cors-headers
配置:
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 来删除一个节点
一切都很好。
python - 在 Heroku 上的 Django 应用程序中为 CORS 指定 URL
我在 Heroku 中有一个使用 Django 运行的应用程序。
现在我开始开发一个 Phonegap 应用程序,我想用我的 Heroku 应用程序工作。
由于 CORS(跨域资源共享)保护,我无法使其工作。所以我需要排除一些网址(不是所有应用程序)才能使我的 Phonegap 应用程序正常工作。
我试过安装django-cors-headers,但它似乎不起作用。
为了测试它,我打电话来获取一个 csrf_token。
我将此添加到我的 setting.py 中(当然按照指南,将所有设置为默认值):
这是我尝试进行的 Ajax 调用:
但是我将此标记为红色,并显示为错误和空响应字段:
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
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)”
我需要弄清楚为什么提出这个请求,以及如何提高应用程序的性能。
python - 从另一个服务器进程访问 Django API 时如何避免跨域资源共享错误?
我正在构建一个具有两个独立组件的 WebApp:
- Web 访问者将访问的“前端”node.js 应用程序服务器(在 localhost:3099 上运行)
- 管理我的 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 时,我在浏览器的控制台窗口中收到以下错误:
为了解决这个问题,采取了以下步骤:
- 我安装了django-cors-headers
- 我添加
'corsheaders'
到我的INSTALLED_APPS
- 我添加
'corsheaders.middleware.CorsMiddleware'
到MIDDLEWARE_CLASSES
上面'django.middleware.common.CommonMiddleware'
- 我宣布了白名单:
CORS_ORIGIN_WHITELIST = ('localhost', '127.0.0.1',)
但是,实施 django-cors-headers 似乎没有任何区别。我仍然收到相同的 CORS 错误。我该如何解决这个问题?