女士/男士:
做一个在 Chrome 和 FireFox 中运行良好的 $.post。IE - 没那么多......成功回调(addTicketAndRender())永远不会被击中:
我已经阅读了一些关于需要通过我的 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);
});
});
请帮个忙好吗?
Update1:将其切换为 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,我可以看到从http://jsfiddle.net/AeQxJ/3//运行下面的代码时 POST 出去了。在 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”将我带到这里:
对 WebService 的 jQuery 调用返回“无传输”错误
帖子表明添加jQuery.support.cors = true;
应该可以解决问题,但是当我这样做时,会返回错误:
//output:
// xhr.StatusText: Error: Access is denied
// testSttus: Error
// error: Error: Access is denied