当我重定向到其他域时,Safari 不提供发布表单数据。
根据https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/307在临时重定向 307 上,浏览器不应更改 post 请求。
Chrome 、firefox 保留发布数据,无论给定的域如何。所以他们按照上面的链接正确行事。
但是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/