Cors: 当凭据标志为真时,不能在 Access-Control-Allow-Origin 使用通配符

I have a setup involving

Frontend server (Node.js, domain: localhost:3000) <---> Backend (Django, Ajax, domain: localhost:8000)

Browser <-- webapp <-- Node.js (Serve the app)

Browser (webapp) --> Ajax --> Django(Serve ajax POST requests)

Now, my problem here is with CORS setup which the webapp uses to make Ajax calls to the backend server. In chrome, I keep getting

Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.

doesn't work on firefox either.

My Node.js setup is:

var allowCrossDomain = function(req, res, next) {
    res.header('Access-Control-Allow-Origin', 'http://localhost:8000/');
    res.header('Access-Control-Allow-Credentials', true);
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
};

And in Django I'm using this middleware along with this

The webapp makes requests as such:

$.ajax({
    type: "POST",
    url: 'http://localhost:8000/blah',
    data: {},
    xhrFields: {
        withCredentials: true
    },
    crossDomain: true,
    dataType: 'json',
    success: successHandler
});

So, the request headers that the webapp sends looks like:

Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: "Origin, X-Requested-With, Content-Type, Accept"
Access-Control-Allow-Methods: 'GET,PUT,POST,DELETE'
Content-Type: application/json 
Accept: */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: csrftoken=***; sessionid="***"

And here's the response header:

Access-Control-Allow-Headers: Content-Type,*
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
Content-Type: application/json

Where am I going wrong?!

Edit 1: I've been using chrome --disable-web-security, but now want things to actually work.

Edit 2: Answer:

So, solution for me django-cors-headers config:

CORS_ORIGIN_ALLOW_ALL = False
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_WHITELIST = (
    'http://localhost:3000' # Here was the problem indeed and it has to be http://localhost:3000, not http://localhost:3000/
)

转载于:https://stackoverflow.com/questions/19743396/cors-cannot-use-wildcard-in-access-control-allow-origin-when-credentials-flag-i

0
csdnceshi78
程序go yeah the point is not the http, it is the / at the end. I suppose omitting http could work, but I've not really worked on this stuff for some years, so don't really know what works now!
一年多之前 回复
weixin_41568126
乱世@小熊 why you say with the http works for you? we all only 'localhost:3000' works.
一年多之前 回复
csdnceshi54
hurriedly% how about the frontend and backend in different PC?
一年多之前 回复
csdnceshi78
程序go yes
一年多之前 回复
csdnceshi54
hurriedly% Do you mean you use develop the frontend and backend in one PC?
一年多之前 回复
csdnceshi60
℡Wang Yan For me it is localhost:3000 without http, like this: CORS_ORIGIN_WHITELIST = ( 'localhost:3000', )
接近 2 年之前 回复
csdnceshi61
derek5. ...I love you...I spent hours debugging it....damn Firefox didn't return any message!
大约 3 年之前 回复
扫码支付0.1元 ×
其他相关推荐
Cors跨域请求,配置Access-Control-Allow-Origin:"*",无效解决方案
由于应用需要跨域请求数据,博主在JDK8、Tomcat7.0的cors可以配置Access-Control-Allow-Origin:"*",但是我按照文档配置以后却没有生效,一度怀疑是tomcat或者jdk的问题,最后想起来web.xml是按照从前往后的顺序加载的。解决方案:是filter位置的问题,你把整个放到第一个filter的位置就可以了。给出web.xml: <web-app
Ajax跨域问题的解决方法之一 —— "Access-Control-Allow-Origin"
Ajax跨域问题的解决方法之一 —— “Access-Control-Allow-Origin”环境 后台语言 使用框架 Nodejs express 问题正常情况下使用Ajax请求时,若应用与服务器间的协议,端口或域名有任意一个不同,则请求跨域。 浏览器报错信息:XMLHttpRequest cannot load http://xxx/xxx. Origin http://xxx
cors安全完全指南
这篇文章翻译自:https://www.bedefended.com/papers/cors-security-guide 作者:Davide Danelon 译者:聂心明 译者博客:https://blog.csdn.net/niexinming 版本:1.0 - 2018年-七月 1. _介绍 这个指南收集关于cors所有的安全知识,从基本的到高级的,从攻击到防御 ...
利用Access-Control-Allow-Origin响应头解决跨域请求
传统的跨域请求没有好的解决方案,无非就是jsonp和iframe,随着跨域请求的应用越来越多,W3C提供了跨域请求的标准方案(Cross-Origin Resource Sharing)。IE8、Firefox 3.5 及其以后的版本、Chrome浏览器、Safari 4 等已经实现了 Cross-Origin Resource Sharing 规范,实现了跨域请求。 在服务器响应客户端的时
加载图层报错“CORS 头 'Access-Control-Allow-Origin' ,解决办法
加载Featurelayer,报错“CORS 头 'Access-Control-Allow-Origin' 不匹配 'http://localhost:81'”,查了下原因,应该是没有设置代理导致的原因 在加载图层前加入下面这句话 esri.config.defaults.io.corsDetection=false; 图层可以被加载上而不报错了。 并不是很清楚问
jersey构建rest接口,ajax跨域访问(原因:CORS 头缺少 'Access-Control-Allow-Origin')
用jersey构建的接口,RestClient可以访问,但是当端进行访问的时候就会出错。 查阅一下资料 大概意思为 跨域请求,当域名不一样的时候,服务器会拒绝访问。 这时候需要加入过滤器来进行控制请求,允许访问服务器 以下为接口代码和过滤器代码 package com.limeng.test; import javax.ws.rs.GET; import javax.ws.rs.P...
利用Access-Control-Allow-Origin响应头解决跨域请求原理
传统的跨域请求没有好的解决方案,无非就是jsonp和iframe,随着跨域请求的应用越来越多,W3C提供了跨域请求的标准方案(Cross-Origin Resource Sharing)。IE8、Firefox 3.5 及其以后的版本、Chrome浏览器、Safari 4 等已经实现了 Cross-Origin Resource Sharing 规范,实现了跨域请求。 在服务器响应客户端的时
解决NodeJS+Express模块的跨域访问控制问题:Access-Control-Allow-Origin
在一个项目上想用NodeJS,在前端的JS(http://localhost/xxx)中ajax访问后端RestAPI(http://localhost:3000/….)时(Chrome)报错: XMLHttpRequest cannot load http://localhost:3000/auth/xxx/xxx. Origin http://localhost is not all
CORS 跨域资源访问
参考: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS https://www.w3.org/TR/cors/ http://www.ruanyifeng.com/blog/2016/04/cors.html一. 概述CORS(Cross-Origin Resource Sharing,跨域资源访问):
解决了设置了Access-Control-Allow-Origin: *还是跨域的问题。
说起跨域请求,大家首先想到的就会是设置请求头Access-Control-Allow-Origin: *。但是有时候只设置这么一样还是解决不了的跨域问题就要分的比较细的设置请求头了: access-control-allow-headers: Authorization, Content-Type, Depth, User-Agent, X-File-Size, X-Requested-Wit...
一劳永逸:域名支持通配符,ASP.NET Core中配置CORS
ASP.NET Core 内置了对 CORS 的支持,使用很简单,只需先在 Startup 的 ConfigureServices() 中添加 CORS 策略: public void ConfigureServices(IServiceCollection services) { services.AddCors(options =&amp;gt; options.AddPolicy(...
跨域请求问题在服务端设置了Access-Control-Allow-Origin后依然不能解决的问题
 如下:如果将ajax请求的请求头content-type设置成为&quot;application/x-www-form-urlencoded&quot;,即便在服务端设置的跨域配置依然不能解决问题,(但是通过在浏览器插件中进行跨域却没有问题)去掉content-type 请求依然是form-data的方式提交 $.ajax({ async: false, crossDomain:true, ...
Vue小模块之用户登录功能(六)使用axios解决‘Access-Control-Allow-Origin’跨域
Vue小模块之用户登录功能(六)使用axios解决‘Access-Control-Allow-Origin’跨域 技术栈 Vue全家桶: 前端框架 Vue.js 状态管理 Vuex 动态路由匹配 vue-router http服务 axios 模块打包 webpack UI框架 element 数据服务器 服务器端 node.js 基于node的web框架 express ...
实测 CORS 跨域访问之 Access-Control-Allow-Origin 多域名设置
通过 Windows 与虚拟机 Linux 的交互,实现 CORS 跨域访问,并在响应头的 Access-Control-Allow-Origin 中成功实现允许多个域名跨域访问。最后给出注意事项。
OSS设置CORS规则以后还是报No 'Access-Control-Allow-Origin'解决方法
在OSS控制台设置了CORS规则以后,通过JS程序去调用的时候报No 'Access-Control-Allow-Origin' header is present on the requested resource,可以通过下面的思路来进行下排查: 1. 确认检查CORS规则是否设置好了,是否设置正确,正确的设置方法如下图:   2. CORS设置都正确的话,那
Access-Control-Allow- 设置 CORS(跨域资源共享)详解
跨域访问的项目常在过滤器或者拦截器中添加如下配置     response.setHeader(&quot;Access-Control-Allow-Origin&quot;, &quot;*&quot;); response.setHeader(&quot;Access-Control-Allow-Methods&quot;, &quot;POST,OPTIONS,GET&quot;); response.setHeader(&quot;Access...
TOMCAT 跨域 CORS Access-Control-Allow-Origin cors-filter
跨域 CORS Access-Control-Allow-Origin cors-filter-2.6.jar java-property-utils-1.9.1.jar
c# WebApi之解决跨域问题:Cors
一、什么是跨域问题出于安全考虑,浏览器会限制脚本中发起的跨站请求,浏览器要求JavaScript或Cookie只能访问同域下的内容。由于这个原因,我们不同站点之间的数据访问会被拒绝。二、CORS解决跨域问题跨域资源共享( CORS )机制允许 Web 应用服务器进行跨域访问控制,从而使跨域数据传输得以安全进行。它解决跨域问题的原理是通过向http的请求报文和响应报文里面加入相应的标识告诉浏览器它能访
Allow-Control-Allow-Origin 谷歌跨域扩展插件
Access-Control-Allow-Origin 解决跨域权限问题,在谷歌浏览器输入:chrome://extensions,然后把下载好的文件拖入chrome://extensions页面,点击安装即可完成安装即可使用
基于Jersey,使用web.xml拦截器出现的cors问题
一开始web.xml的初始配置如下:
关于Access-Control-Allow-Origin的跨域错误解决
网页似乎比flash还严格, 子域名之间都不能互相访问 必须在
Golang利用Access-Control-Allow-Origin响应头解决跨域请求问题
1、在http请求的响应流头部加上如下信息: rw.Header().Set("Access-Control-Allow-Origin", "*") rw是http.ResponseWriter对象 2、Beego中添加路由过滤器 beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
Firefox/Chrome/IE Ajax 怎样设置允许跨域请求
一般js出现跨域请求时时,浏览器会出现错误,解决方法为在服务器的页面header加Access-Control-Allow-Origin参数 chrome:XMLHttpRequest cannot load xxx.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Firefox错误:已阻止跨域源请求:同源策略禁止取位于 http://...xxx 的远程资源.(原因: CORS 头缺少
nginx 解决access-control-allow-origin CORS跨域安全访问问题及秘钥文件的配置
 利用nginx实现https访问,同时添加秘钥和和防止跨站访问,这里我只修改了一些默认的参数, vi nginx.conf server { listen 443 default_server ssl; # 打开https的端口号,启用https的443端口 server_name www.a.com; # 服务器的...
Access-Control-Allow-Origin和反向代理处理跨域
什么是跨域 跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。 所谓同源是指,域名,协议,端口相同。浏览器执行javascript脚本时,会检查这个脚本属于那个页面,如果不是同源页面,就不会被执行。 同源策略的目的,是防止黑客做一些做奸犯科的勾当。比如说,如果一个银行的一个应用允许用户上传网页,如果没有同源策略,
已被CORS策略阻止:请求的资源上没有'Access-Control-Allow-Origin'标头 (使用Access-Control-Allow-Origin解决跨域)
问题:已被CORS策略阻止:请求的资源上没有'Access-Control-Allow-Origin'标头(跨域请求失败) 解决方法:使用过滤器设置Access-Control-Allow-Origin解决跨域请求 第一步:创建过滤器 package com.ljw.filter; import java.io.IOException; import javax.servlet....
Access-control-allow-origin:*并没有实际危害(更新)
一、网站一般在需要共享资源给其他网站时(跨域传递数据),才会设置access-control-allow-origin HTTP头。而跨域传递数据也可以使用jsonp方式   二、如果www.a.com域设置了access-control-allow-origin:* http头, 其他任何域包括www.b.com域的js就可以使用Ajax技术读取到​www.a.com域的数据 三、根据w3...
Allow-Control-Allow-Origin谷歌跨域扩展插件
google chrome 安装 CORS插件可直接本地ajax调式远程服务解口,解决跨域问题。
【详解跨域问题】HTTP访问控制(CORS)
转自:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS 当一个资源请求一个其它域名或者另外一个端口的资源时会产生一个跨域HTTP请求(cross-origin HTTP request)。比如说,http://domaina.example的某HTML页面通过  src 请求 http:
关于跨域请求静态文件配置问题[Access-Control-Allow-Origin]
当请求不同域名下的一些文件的时候,例如:src='******.svg' 有时候会出现这样的提示 已阻止跨源请求:同源策略禁止读取位于*的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。 Font from origin '' has been blocked from loading by Cross-Origin Reso
WIN7可中SQL SERVER 2008安装时出现不能在控件上调用 Invoke 或 BeginInvoke错误(终极解决方法)
我第一遍安装时,没有安装全部,结果,需要卸载重装,但是,重装时,出现不能在控件上调用 Invoke 或 BeginInvoke错误,在网上找了一圈,都是改注册表,结果根本找不到说的键值,注册表的 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager" 并将其下面的"PendingFileRenameOperatio
使用Spring Boot的跨源CORS设置
使用Spring Boot的跨源CORS设置
使用Vue配合Express框架构建SPA应用遇到的"Access-Control-Allow-Origin"问题
问题:Access-Control-Allow-Origin Access to XMLHttpRequest at 'http://127.0.0.1:3000/api/xxx?page=1' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origi...
Allow-Control-Allow-Origin最新谷歌跨域扩展插件下载
谷歌跨域扩展插件,保障跨域请求成功,Allow-Control-Allow-Origin最新谷歌跨域扩展插件下载
自定义Access-Control-Allow-Origin策略以解决字体文件跨域权限问题
什么是Access-Control-Allow-Origin Access-Control-Allow-Origin是HTML5中定义的一种服务器端返回Response header,用来解决资源(比如字体)的跨域权限问题。 它定义了该资源允许被哪个域引用,或者被所有域引用(google字体使用*表示字体资源允许被所有域引用)。 什么是资源跨域权限 当两个域具有相同的协议(
设置Access-Control-Allow-Origin,解决多域名跨域问题
设置Access-Control-Allow-Origin,解决多域名跨域问题项目中为了测试方便,通常将Access-Control-Allow-Origin设置为“*”,在项目上线时再改为真实域名。 方法简单粗暴!之后用到一个WangEditot富文本编辑器,上传图片需要确定具体的Access-Control-Allow-Origin,导致在测试图片上传功能时较为麻烦。通过网上搜索,找到了解决方
PHP 跨域中间件 PHP CORS 1.2.0 新增 Slim 框架支持
什么是 PHP CORS?什么是 medz/cors?这个中间件的全名叫做 「PHP CORS Middleware」,专门用来处理基于 PHP 程序的 CORS 信息问题,主要针对在 PHP 程序中设置跨域信息的支持。安装得益于 Composer,现在我们安装变得很简单,请在你的 Lumen 项目中执行:composer require medz/cors更新内容FeatureAdded Sli...
使用谷歌插件Allow-Control-Allow-Origin解决跨域问题
一般下载这个插件Allow-Control-Allow-Origin需要翻墙或者在csdn上下载,需要积分,不过在火狐浏览器里的附加组件可以下载,在火狐浏览器上就可以跨域访问了。...
已阻止跨源请求:同源策略禁止读取位于...的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。
今天使用jsonp遇到个奇怪的问题,本地的就是不报错,可是上传上去就是报下面的错误: 已阻止跨源请求:同源策略禁止读取位于 http://www.***.cn/getcode.aspx?id=2222222222222222&callback=jsonp1450266336118 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。 明明
spring Cors拦截流程
Cors跨域拦截实现过程所有的请求都进入CorsFilter的doFilterInternal方法org.springframework.web.filter.CorsFilter//在这里过滤所有请求@Overrideprotected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, ...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 ios培训郑州真聘 python学习之通配符%s