gpt4 book ai didi

javascript - 跨域 Ajax 调用在 Safari 4 和 Safari 5 中不起作用

转载 作者:行者123 更新时间:2023-11-28 01:31:44 26 4
gpt4 key购买 nike

我有以下 jquery ajax 代码,可在除 Mac 中的 Safari 4 和 Safari 5 之外的所有其他浏览器中运行。它在 Safari 6 中可以正常工作。

$.ajax({
type : "POST",
url : crossDomainURL,
contentType : "text/plain",
data : requestData,
dataType : "text",
success : function(e) {
console.log("success");

},
error : function(e) {
console.dir(e);
console.log("FAILLLLLLLLL");
},
});

它每次都会在控制台上打印“FAILLLLLLL”语句,状态文本为错误,状态为 0。crossDomainURL 处的服务器已正确配置为处理此类请求(因此它可以正常工作)在所有其他浏览器中)。

但是对于 Mac 上的 Safari(4 和 5),ajax 调用甚至不会离开浏览器。它似乎与 CORS 问题有关,但我很困惑为什么同样的代码在 Firefox、Chrome 和 Safari 6 中可以正确工作,但在 Safari 4 和 5 中却不能。

我很欣赏任何想法。

谢谢。

编辑:旧版本的 Safari 可以在这里找到:http://michelf.ca/projects/multi-safari/

最佳答案

我将一个示例 Nodejs 应用程序与 CORS header 集放在一起,并成功地在 Safari 4 (Mac) 上完成跨域请求。

Access-Control-Allow-Origin *
Access-Control-Allow-Methods GET,PUT,POST,DELETE
Access-Control-Allow-Headers Content-Type

服务器代码可以在这里找到:https://github.com/sfarthin/cross-domain-ajax-nodejs/blob/master/server.js并部署到 Heroku (polar-dawn-3847.herokuapp.com)。

跨域请求示例可以在这里找到: http://jsfiddle.net/78SYj/2/(jsFiddle的界面在Safari 4中被破坏,但仍然执行ajax请求)

$.ajax({
type : "POST",
url : "http://polar-dawn-3847.herokuapp.com/",
contentType : "text/plain",
dataType : "text",
success : function(e) {
alert("success");

},
error : function(e) {
alert("FAILLLLLLLLL");
}
});

如果您分享您的服务器代码/配置,我想我们将能够找到问题。

关于javascript - 跨域 Ajax 调用在 Safari 4 和 Safari 5 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22048901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com