gpt4 book ai didi

javascript - 厌恶IE,拒绝回复JQuery Post

转载 作者:行者123 更新时间:2023-11-30 10:41:16 25 4
gpt4 key购买 nike

女士们/男士们:

做一个在 Chrome 和 FireFox 中工作正常的 $.post。 IE - 没那么多......成功回调(addTicketAndRender())永远不会被击中:

http://jsfiddle.net/AeQxJ/1/

我读过一些关于需要用我的 POST 对 IE 进行“缓存破坏”的内容,但我对这些东西比较陌生,所以不知道这是否适合尝试,如果适合,如何做做吧。

来源:

function addTicketAndRender(incomingTicket) {

console.log("Add and Render");
alert(incomingTicket);
}



$(document).ready(function() {

console.log('ready');

// variables to feed trusted ticket retrieval
var trustedURL = "http://tableau.russellchristopher.org/trusted",
userName = "foo",
serverURL = "http://tableau.russellchristopher.org/";



$.post(trustedURL, {
username: userName,
server: serverURL,
client_ip: "",
target_site: "",
cache: "false"
}, function(response) {
addTicketAndRender(response);
});

});​

请帮忙,好吗?

更新 1: 将其切换为 ajax 帖子:没有区别。在 Chrome 和 Firefox 上仍然很好,在 IE 上仍然死机:

    $.ajax( {
url : trustedURL,
type: "POST",
data : {
username : userName,
server : serverURL,
client_ip : "",
target_site : ""
},
cache : false


} ).done( addTicketAndRender );

更新 2: 集成了额外的缓存清除技术。相同的行为 - Chrome/FF 工作,IE 什么都没有 - 使用 Fiddler,我可以看到 POST 在从 http://jsfiddle.net/AeQxJ/3// 运行下面的代码时消失了.在 IE 中,这永远不会发生。在 jsfiddle 之外测试并看到相同的结果。下一步:通过在我没有触及浏览器设置的盒子上进行测试来排除我的愚蠢的 IE 浏览器设置。

function addTicketAndRender(incomingTicket){


alert(incomingTicket);
}

$(document).ready(function() {
// variables to feed trusted ticket retrieval

var trustedURL = "http://tableau.russellchristopher.org/trusted",
userName = "foo",
serverURL = "http://tableau.russellchristopher.org/";

var number=Math.floor(Math.random()*1);
$.ajax( {
url : trustedURL + "?" + number,
type: "POST",
data : {
username : userName,
server : serverURL,
client_ip : "",
target_site : ""
},
cache : false
} ).done( addTicketAndRender );

});​

更新 4: 将我的 IE 副本排除在外。向 POST 添加了错误捕获代码,并且仅当在 IE 中运行时,我才会看到此抛出:

         error: function(xhr, textStatus, error){
alert(xhr.statusText);
alert(textStatus);
alert(error);

//output:

// xhr.StatusText: No Transport
// testSttus: Error
// error: No Transport

搜索“IE No Transport jquery POST”会将我带到这里:

jQuery Call to WebService returns "No Transport" error

帖子表示添加 jQuery.support.cors = true; 应该可以解决问题,但是当我这样做时,会返回错误:

//output:

// xhr.StatusText: Error: Access is denied
// testSttus: Error
// error: Error: Access is denied

最佳答案

改变

$.post( ...
cache: "false"
...

收件人:

$.ajax(...
cache: false,
...

注意,第一个缓存的是一个无意义的字符串,而后面的是一个 bool 值false。

关于javascript - 厌恶IE,拒绝回复JQuery Post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10897317/

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