php ci cors,javascript-CORS请求在Safari中不起作用
javascript-CORS请求在Safari中不起作用
我正在提出CORS xhr请求。 这在chrome中工作正常,但是当我在野生动物园中运行时,出现“无法加载---- Access-control-allow-origin不允许的访问”。 代码完全相同,我已经在服务器上设置了CORS。 以下是我的代码。(具有访问控制,但是如果没有accessToken,您可以自由尝试)
var water;
var req = new XMLHttpRequest;
req.overrideMimeType("application/json");
req.open('GET', 'https://storage.googleapis.com/fflog/135172watersupplies_json', true);
req.setRequestHeader('Authorization', 'Bearer ' + accessToken);
origThis = this;
var target = this;
req.onload = function() {
water = req;
req.send(null);
查看请求标头后,我看到首先发出了OPTIONS请求,这是不允许的请求。 原始标头未包含在Safari的响应中,但位于chrome中。 是什么原因造成的。 任何帮助将不胜感激。
更新:我已经在Windows的Safari浏览器中进行了尝试,并且可以正常运行,所以我不确定这里发生了什么。 我使用的Mac是远程访问(Macincloud.com),但我认为这与它无关。
10个解决方案
45 votes
对Amazon S3中的文件发出XHR请求时遇到了相同的错误。 在Safari 7上失败了。 我知道您没有使用Amazon S3,但我想我会发布以防此解决方案对其他人有所帮助。
问题是Safari 7将Access-Control-Request-Headers标头设置为“原始的x请求的”,但是我的AWS CORS配置仅允许“ x请求的”:
*
GET
3000
Authorization
x-requested-with
我添加了“ origin”作为允许的标题,并且一切正常。
origin
注意:*的AllowedOrigin仅用于开发目的。 有关更多信息,请参见下面的@andes评论。
Seth answered 2020-02-21T15:59:34Z
8 votes
我只是有一个类似的问题,CORS错误。 它可以在Firefox和Chrome中运行,但不能在Safari 10中运行。
原来,我们需要在JSON URL上加上斜杠。
William Macdonald answered 2020-02-21T15:59:58Z
1 votes
就我而言,这是Accept-Langauge标头的问题。 我在Access-Control-Allow-Headers中添加了Accept-Language,此问题已解决。
deen answered 2020-02-21T16:00:18Z
0 votes
对于CORS请求,您应该使用起源fflog.storage.googleapis.com。如果您使用常见的overrideMimeType起源,则任何站点都可以访问您的存储桶。
有尝试尝试删除overrideMimeType吗? 如果设置了mime类型,它将正确返回。
我也对Safari POST请求有问题,但还没有答案。 GET确定。
Kyaw Tun answered 2020-02-21T16:00:48Z
0 votes
尝试删除替代mime类型。
var
jsonhandler=function(){var req=JSON.parse(this.response);console.log(req)},
req=new XMLHttpRequest;
req.open('GET','https://storage.googleapis.com/fflog/135172watersupplies_json');
req.setRequestHeader('Authorization','Bearer '+accessToken);
req.οnlοad=jsonhandler;
req.send();
cocco answered 2020-02-21T16:01:07Z
0 votes
当我查询您的URL时,我将获得以下访问控制标头:
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Authorization, Cache-Control, Content-Length, Date, Expires, Server, Transfer-Encoding, x-goog-meta-foo1
我怀疑这与您的Access-Control标头有关-是您遗漏了某些内容,还是过于具体。
鉴于您实际上正在发送自定义标头,因此您可能需要尝试:
Access-Control-Allow-Headers: *
您还会看到遗漏Access-Control-Expose-Headers是否有所作为。
除此之外,查看实际的请求/响应标头实际上也将有所帮助。
Luke answered 2020-02-21T16:01:46Z
0 votes
当我尝试
curl -v -X OPTIONS \
-H 'Origin: fflog.storage.googleapis.com' \
-H 'Access-Control-Request-Method: GET' \
https://storage.googleapis.com/fflog/135172watersupplies_json
除了其他标题,我得到了:
Access-Control-Allow-Origin: *
当我在Mac OS 10.8.3上针对Safari 6.0.4的Access-Control-Allow-Origin执行AJAX请求时,出现403错误,但它们全部执行。
因此,我只能猜测您正在尝试发送带通配符Access-Control-Allow-Origin的凭据请求。
Old Pro answered 2020-02-21T16:02:19Z
0 votes
感谢所有答复,我终于自己得到了。 我在responseHeaders中添加了“ Origin”,现在可以正常工作了。
Patrick answered 2020-02-21T16:02:39Z
0 votes
至于Amazon S3,它仅在我添加了更多允许的标头Content-Type和Range后才能在Safari中使用。 其中之一完成了工作。
*
GET
POST
3000
Authorization
Origin
X-Requested-With
Content-Type
Range
Edhowler answered 2020-02-21T16:02:59Z
0 votes
我在CORS在Chrome中工作时遇到了同样的问题,但是在Safari中抛出了原点错误。 原来这是一个Kerberos授权问题。 当我直接在Safari中加载XHR URL时,系统会提示我输入凭据。 输入它们后,我返回了原始站点,Safari不再出现CORS错误。
Seth Moore answered 2020-02-21T16:03:20Z
php ci cors,javascript-CORS请求在Safari中不起作用相关推荐
- Spring Boot Web应用开发 CORS 跨域请求支持
一.Web开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS等等 CORS与JSONP相比 1. JSONP只能实现GET请求,而CORS支持所有类型的HTTP请求. 2. 使用C ...
- java重定向跨域问题_重定向 CORS 跨域请求
TL;DR 非简单请求不可重定向,包括第一个preflight请求和第二个真正的请求都不行. 简单请求可以重定向任意多次,但如需兼容多数浏览器,只可进行一次重定向. 中间服务器应当同样配置相关 COR ...
- corspost请求失败_vue项目CORS跨域请求500错误,post请求变options请求
vue项目CORS跨域请求500,post请求变options请求,到底是什么情况. 提示:以下内容是一个非专业开发的我对跨域的理解,并不10分准确. 一.先介绍为什么明明发送的是Post请求,为什么 ...
- CORS预检请求详谈
引言 最近在项目中因前后端部署不同地方,前端在请求后端api时发生了跨域请求,我们采用CORS(跨域资源共享)来解决跨域请求,这需要前后端的配合来完成.在这一过程中,后端支持了CORS跨域请求后,前端 ...
- HTTP中CORS跨域请求的实现(C++|Qt框架实现)
目录 背景 关键 演示及源码 背景 HTTP中CORS跨域请求,可以获取其他服务器的数据: 这里用Qt框架实现! 逻辑如下: 浏览器访问127.0.0.1:80端口!80端口请求了127.0.0.1: ...
- Node.js设置CORS跨域请求中多域名白名单的方法
允许跨域请求,主要就是配置Response响应头中的 Access-Control-Allow-Origin 属性为你允许该接口访问的域名. 最常见的设置是: res.header('Access-C ...
- 记一次 CORS 跨域请求出现 OPTIONS 请求的问题及解决方法
记一次 CORS 跨域请求出现 OPTIONS 请求的问题及解决方法 参考文章: (1)记一次 CORS 跨域请求出现 OPTIONS 请求的问题及解决方法 (2)https://www.cnblog ...
- javascript无限请求_JAVASCRIPT事件循环
事件循环是用来理解JavaScript的最重要的方面之一.这篇文章旨在解释JavaScript如何与单个线程一起工作的细节,以及它如何处理异步函数. JavaScript代码运行是单线程.一次只执行一 ...
- JavaScript HTTP请求
JavaScript HTTP请求 POST方式 POST方式 var httpRequest = new XMLHttpRequest();//第一步:创建需要的对象 httpRequest.ope ...
最新文章
- Linux下MySQL登录报错1045,linux下 root 登录 MySQL 报错的问题
- java doc 文档,注解详解
- VTK:Utilities之Timer
- 2019第十届蓝桥杯C/C++ B组省赛 —— 第四题:数的分解
- scrapy分布式爬虫爬取淘车网
- mysql表类型_MySQL表类型的选择
- mybatis mysql 模糊查询_MyBatis Oracle、MySQL、DB2、SQLServer的like模糊查询
- Cartographer+LOAM+ LIO-SAM核心算法与源码剖析(室内+室外)
- 优点 spark_分布式计算引擎之星——Spark
- c_数据结构_队的实现
- apollo简易高精度地图制作
- Matplotlib画热力图---heatmap(逐行注释)
- 虚拟机安装苹果系统的教程
- NGFW中数据包转发流程
- H264---码率控制---CBR、VBR、ABR、CVBR四种编码方式
- (AAAI-2019)STA:用于大规模基于视频的行人重识别的时空注意力
- 你不得不知道的HashMap面试连环炮
- lol手游服务器维护到什么时候,lol10.1版本维护到几点 lol维护公告最新2020
- 如何选择一台高性能计算机,【小白必看】如何选购电脑?
- 苹果疯了,现在又开始坑支付宝!
热门文章
- pn532检测不到nfc设备_华为、小米又增回NFC功能,苹果却一直无NFC功能,NFC能否成为关键?...
- 为 什 么 说 Synchronized 是 非 公 平 锁
- 安装java环境----血泪版
- php语句执行顺序,sql语句执行顺序是什么
- 小程序地图,回到当前所在位置
- 计算机专业的你,毕业后可以从事什么职业?前景如何?
- 【SAP】ABAP开发——ALV展示后字段的下划线连接
- 怎么简述计算机网络的含义,事业单位的计算机网络信息管理及实践意义论述
- HTML5七夕情人节表白网页制作【3D雪花展开相册】HTML+CSS+JavaScript 程序员表白网页 简单的3D相册制作
- Windows 7使用宝典安装技巧篇之——如何在Win7桌面上显示“我的电脑”