MaK*_*MaK 7 safari ajax jquery redirect cross-domain
我正在进行跨域$ .ajax调用设置
$.ajax({
url : 'http://example.com/somepage',
type : 'get',
crossDomain : true,
xhrFields : { withCredentials: true },
success : function(data) {
// do something with data
}
});
Run Code Online (Sandbox Code Playgroud)
和vhost conf上的服务器端
SetEnvIfNoCase ORIGIN (.*) ORIGIN=$1
Header set Access-Control-Allow-Origin "%{ORIGIN}e"
Header set Access-Control-Allow-Methods "post, get, put, options, patch, delete"
Header set Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header set Access-Control-Max-Age "60"
Header set Access-Control-Allow-Credentials true
Run Code Online (Sandbox Code Playgroud)
除非我的http://example.com/somepage使用302代码重定向到另一个页面http://example.com/someotherpage,在这种情况下,即ff,chrome和opera正在运行并返回从重定向到页面的数据,但不是safari我可以看到重定向(safari控制台),但重定向后的第二次调用中止.
有任何想法吗 ?
小智 1
这应该是一个评论,但我无法评论。我希望这可以帮助你。
不久前,由于 Safari 中使用了 CORS,我们在重定向方面遇到了一些问题。
Safari 会中止该请求,因为它之前执行了飞行前请求,并且配置可能不充分。
我会尝试以下方法(它对我们有用):
支持的标头: pageSuccess、pageError、pageLogin、Origin、Accept-Language、Accept-Encoding
支持的方法: GET、POST、HEAD、PUT、DELETE、OPTIONS
暴露的标头:页面成功、页面错误、页面登录
还应将允许子域、支持的凭据和允许通用 http 请求设置为true。
我们在标头中公开了一些其他信息,给出了 true/false 值(请参阅 displayedHeaders 和supportedHeaders),例如 ErrorPage 或 SuccesPage,当这些信息出现在响应中时,我们使用 jqXHR.getResponseHeader('erroPage')获取它们 以执行重定向。
在这里您会找到一些有用的链接:
问候。
诗。你的配置看起来和我们的几乎一样。仅在supportedHeaders上有区别(当然还有专门为我们的案例添加的exclusiveHeaders)
| 归档时间: |
|
| 查看次数: |
1204 次 |
| 最近记录: |