当前位置: 首页 > 知识库问答 >
问题:

CORS错误在Safari中,而不是在Chrome中

昌博易
2023-03-14

我正在构建一个文件上传器,在前端使用Vue Dropzone,在后端使用自定义PHP。

我的前端脚本正在发送一个带有以下头的请求:

请求头
POST/JOBIMPORT HTTP/1.1
主机:MYURL
连接:Keep-alive
内容-长度:765309
来源:http://localhost:8080
用户-代理:Mozilla/5.0(Macintosh;Intel Mac OS X 10_133)AppleWebKit/537.36(KHTML,像Gecko一样)Chrome/65.0.3325.162 Safari/537.36
内容-类型:Multipart/Form-Data;boundary=---
WebKitFormBoundaryHAAOTZ2J5IIPI3M
Accept:Application/JSON
Cache-Control:no-cache
X-requested-with:XMLHttpRequest
referer:http://localhost:8080/import
Accept-Encoding:gzip,deflate,br
Accept-Language:en-US,en;q=0.9,nl;q=0.8,de;q=0.7,fr;q=0.6

在后端的.htaccess文件中,我添加了以下几行:

Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "*"

当使用Chrome时,文件上传没有问题。
当查看请求头时,我甚至会看到以下内容:

响应标头
(...)
Access-Control-Allow-标头:*
Access-Control-Allow-Origin:*
(...)

但是,当使用Safari时,上传失败,我得到以下错误:

加载资源失败:Access-Control-Allow-Headers不允许请求标头字段Cache-Control。
XMLHttpRequest无法加载https://MyURL。Access-Control-Allow-Headers不允许请求标头字段Cache-Control。

我不明白这在Chrome里是怎么工作的,但在Safari里不行。

共有1个答案

鱼宜
2023-03-14

@SideShowBarker和@RoryHewitt的评论是正确的,
Safari确实不支持access-control-allow-headers的通配符*
我显式列出了所有头,而不是使用通配符,现在它工作得很好。

 类似资料:
  • 首先,对于selenium,我不想使用chromium(Linux中默认使用chromium),我想使用google chrome。其次,当我用selenium下载一个文件时,我想用一个特定的路径下载该文件,例如:src/resources/downloadFiles/它不工作,默认情况下需要/home/myuser/Downloads 这是我的代码: 受保护的final static路径下载路径

  • 我有一个可以通过拖放排序的列表。它可以在桌面浏览器上完美工作,在Android系统上Chrome。然而,它在Safari和Chrome12.1.2iOS(苹果8)上根本不起作用。 请参阅下面的代码片段,也可以轻松地进行移动测试:https://codepen.io/Kelderic/pen/KJMRgb https://imgur.com/a/I8hzPxC(尺寸太大,无法直接嵌入) 为什么这在i

  • 问题内容: 我有一个简单的设置,可以加载“帮助”样式的窗口并将其滚动到页面上的特定点。或多或少的代码看起来像这样: 滚动的目标和软糖的值由放置在页面上的几个提示确定,我对该机制的任何部分都没有问题。在Firefox和IE8中,上述代码的工作方式与我想要的完全一样:滚动框(在本例中为页面正文)在被告知这样做时,会将包含的内容正确滚动到窗口中的正确点。 但是,在Chrome和Safari中,对scro

  • 问题内容: 这让我很精神。 我在Google Maps v3中使用了MarkerCluster,它在FF中可以正常工作,但是当我(和客户端)在Chrome或Safari中启动它时,群集就不存在了。 没有错误,只是不能在webkit中工作。 一些注意事项:它来自一些ajax加载的json,并且在jquery中。 该函数负责添加: 干杯! 重申一下,Chrome中没有错误,只是没有显示。 问题答案:

  • 问题内容: 有人可以在Safari / Chrome中通过JavaScript调用帮助我打印iframe内容的问题。 这在Firefox中有效: 这适用于IE: 但是我无法在Safari / Chrome中正常工作。 谢谢 问题答案: 将打印功能放在iframe中,然后从父级调用它。 iframe: parent:

  • 但是,它在Safari中并不起作用。但是如果我们将中的高度从更改为,我们将观察到拆分器(从上到下到)变得可拖动。这意味着在Safari中不起作用。 有没有人知道如何修改代码,使拆分器在Chrome和Safari中都能工作? 编辑1: