Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails IE 10+;不';t在跨源CSS url()请求时发送cookie_Ruby On Rails_Angularjs_Internet Explorer_Cookies_Heroku - Fatal编程技术网

Ruby on rails IE 10+;不';t在跨源CSS url()请求时发送cookie

Ruby on rails IE 10+;不';t在跨源CSS url()请求时发送cookie,ruby-on-rails,angularjs,internet-explorer,cookies,heroku,Ruby On Rails,Angularjs,Internet Explorer,Cookies,Heroku,我试图将最终用户的安全图像显示为一个具有背景的div(css背景图像:url(…))我有跨域配置,其中我的AngularJS客户端应用程序部署在S3 bucket上,服务器端(Ruby-on-Rails)部署在heroku的不同域名下 所有普通浏览器都会在映像请求中发送身份验证cookie(在身份验证后设置),以便服务器能够了解用户是否有权访问该特定映像并根据该映像做出响应 但不知何故,IE10和IE11不会在跨来源请求时发送任何cookie。但是,当我在同一台机器上设置两台服务器时(只有端口不

我试图将最终用户的安全图像显示为一个具有背景的div(css背景图像:url(…))我有跨域配置,其中我的AngularJS客户端应用程序部署在S3 bucket上,服务器端(Ruby-on-Rails)部署在heroku的不同域名下

所有普通浏览器都会在映像请求中发送身份验证cookie(在身份验证后设置),以便服务器能够了解用户是否有权访问该特定映像并根据该映像做出响应

但不知何故,IE10和IE11不会在跨来源请求时发送任何cookie。但是,当我在同一台机器上设置两台服务器时(只有端口不同),一切正常

有人能帮我解决这个问题吗

更新:

请求头:

  • 接受image/png、image/svg+xml、image/*;q=0.8,/;q=0.5
  • 推荐人我的推荐人url
  • 接受语言如如如,恩如;q=0.5
  • 用户代理Mozilla/5.0(兼容;MSIE 10.0;Windows NT 6.1;WOW64;Trident/6.0)
  • 接受编码gzip,放气
  • 托管我的\u heroku\u服务器端\u url
  • DNT 1
  • 连接保持活动状态`
响应标题:

  • 响应HTTP/1.1 401未经授权
  • 服务器牛仔
  • 日期2015年2月26日星期四格林尼治标准时间22:24:04
  • 连接保持活动状态
  • 严格的运输安全最大年龄=31536000
  • X-Frame-Options SAMEORIGIN
  • X-Xss-Protection 1;模式=块
  • X-Content-Type-Options-nosniff
  • 内容类型text/html;字符集=utf-8
  • 缓存控制无缓存
  • X-Request-Id df2154b6-5c6f-4534-bff0-094576359b78
  • X-Runtime 0.005919
  • 传输编码分块
  • Via 1.1 vegur

几个月前,我遇到了一个类似的问题,我使用AngularJS解决了它,然后在我的JS应用程序配置中设置:

angular.module('myApp', ['restangular'])
  .config(['RestangularProvider', function (RestangularProvider) {
    RestangularProvider.setBaseUrl(serverUrl);
    RestangularProvider.setDefaultHttpFields({
      'withCredentials': true
    });
  }]);

一切正常。

无需使用Restanglar您可以为每个$http请求指定widthCredentials,如下所示:

.config(function ($routeProvider, $httpProvider) {
    $httpProvider.defaults.withCredentials = true;

我以前在这里回答过类似的问题:

奇怪。这是一个如此罕见的问题,以至于没有人面对它吗?Cookies受浏览器同源策略的约束,因此,如果IE不将cookie发送到其他域,这就是预期的行为。嗯,我不确定我是否理解你的意思。在同一台操作系统相同的计算机上,Chrome和Firefox会按预期发送cookies,但IE没有。你考虑过使用吗?这是为了帮助旧的IE版本,但我会尝试一下。这是IE的一个众所周知的头痛问题,不幸的是,IE仍然执行一种叫做P3P的策略。看看这篇文章,因为它可能会对你的问题有所帮助:这没有帮助。我写道,我请求图像作为css背景图像属性,所以角度不影响此行为。