google-chrome - safari 是否正确处理到不同域的临时重定向 (307)?

标签 google-chrome http firefox safari http-redirect

当我重定向到其他域时,Safari 不提供发布表单数据。

根据https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/307临时重定向 307 上,浏览器不应更改 post 请求。

Chromefirefox 保留发布数据,无论给定的域如何。所以他们按照上面的链接正确行事。

但是https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user

所以我什至不确定哪些浏览器可以正确处理临时重定向。

无论如何,我可以让 Safari 在 307 重定向时不会丢失其发布数据吗?

最佳答案

这很可能是 CORS 问题,307 指向的服务器是否启用了跨源资源共享?例如响应 header 中的 Access-Control-Allow-Origin: *

如果没有,请尝试在该服务器上启用 CORS 并进行测试。

如果这不起作用,那么也许看看您如何发出初始 POST 请求,您使用的是 xhr (XMLHttpRequest) 还是其他东西?如果您使用的是 xhr,请尝试通过 Fetch API 进行 POST,看看是否有效。

有一个webkit bug这被标记为已修复,但与您所经历的非常相似。您可能仍然遇到同样的问题。

关于google-chrome - safari 是否正确处理到不同域的临时重定向 (307)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60227333/

相关文章:

html - 无法跨浏览器获得像素完美高度

javascript - Chrome 更新阻止 Flash 自动播放 - 如何避免它?

java - 从文本框传递参数

java - 将自定义协议(protocol)导入 MS Excel/Access

javascript - window.onerror 不在 Firefox 中触发

javascript - 什么会导致 firebug 中持续存在 "Reload the page to get source for"错误?

css - 卡背隐藏在 chrome 的第一次转换中

java - 找不到带有 JSON 配置文件的 Chrome 二进制文件

web-services - 自定义 http 用户代理字符串的最佳实践?

php - 在一台机器上的 Firefox 上重复出现 "Unresponsive Script Warning"