jqueryasync:false和Firefox
当用户单击一个链接时,我想进行一个ajax调用,并在重定向用户之前等待调用完成。最初,我使用了jqueryasync:false和Firefox,jquery,ajax,firefox,Jquery,Ajax,Firefox,当用户单击一个链接时,我想进行一个ajax调用,并在重定向用户之前等待调用完成。最初,我使用了preventDefault()和window.location来获得结果,但这阻止了用户执行Ctrl+Click(新建选项卡) 所以我最终做了这件事,但由于某些原因,Firefox中从未进行过ajax调用: $('a.item-link').on('click', function(e){ $.ajax({ url: "http://123.456.789.012/c",
preventDefault()
和window.location
来获得结果,但这阻止了用户执行Ctrl+Click(新建选项卡)
所以我最终做了这件事,但由于某些原因,Firefox中从未进行过ajax调用:
$('a.item-link').on('click', function(e){
$.ajax({
url: "http://123.456.789.012/c",
type: 'GET',
data: {
'userId' : '1234'
},
dataType: 'jsonp',
async: false,
cache: false,
timeout: 1500
});
return true;
});
你知道我如何在Firefox中进行同步调用吗?感谢您的帮助。将您的元素设置为按钮,在ajax调用完成之前不要进行重定向。如果通话前按下ctrl键,则在新窗口中打开 将元素设为按钮,在ajax调用完成之前不要进行重定向。如果通话前按下ctrl键,则在新窗口中打开 将元素设为按钮,在ajax调用完成之前不要进行重定向。如果通话前按下ctrl键,则在新窗口中打开 将元素设为按钮,在ajax调用完成之前不要进行重定向。如果通话前按下ctrl键,则在新窗口中打开 多亏了@JeffB和@bobber205,我终于做到了:
$('a.item-link').on('click', function(e){
if(e.ctrlKey){
var newTab = true;
} else {
e.preventDefault();
var _this = this;
var newTab = false;
}
$.ajax({
url: "http://123.456.789.012/c",
type: 'GET',
data: {
'userId' : '1234'
},
dataType: 'jsonp',
cache: false,
timeout: 1500,
success: function(){
if(!newTab){
window.location = $(_this).prop('href');
}
},
error: function(){
if(!newTab){
window.location = $(_this).prop('href');
}
}
});
if(newTab){
return true;
}
});
我只是检查在单击过程中是否按下了ctrl
键并采取了相应的操作
谢谢你的提示,专家们。有时候,最简单的想法需要别人提醒。这是一个很棒的社区 多亏了@JeffB和@bobber205,我终于做到了:
$('a.item-link').on('click', function(e){
if(e.ctrlKey){
var newTab = true;
} else {
e.preventDefault();
var _this = this;
var newTab = false;
}
$.ajax({
url: "http://123.456.789.012/c",
type: 'GET',
data: {
'userId' : '1234'
},
dataType: 'jsonp',
cache: false,
timeout: 1500,
success: function(){
if(!newTab){
window.location = $(_this).prop('href');
}
},
error: function(){
if(!newTab){
window.location = $(_this).prop('href');
}
}
});
if(newTab){
return true;
}
});
我只是检查在单击过程中是否按下了ctrl
键并采取了相应的操作
谢谢你的提示,专家们。有时候,最简单的想法需要别人提醒。这是一个很棒的社区 多亏了@JeffB和@bobber205,我终于做到了:
$('a.item-link').on('click', function(e){
if(e.ctrlKey){
var newTab = true;
} else {
e.preventDefault();
var _this = this;
var newTab = false;
}
$.ajax({
url: "http://123.456.789.012/c",
type: 'GET',
data: {
'userId' : '1234'
},
dataType: 'jsonp',
cache: false,
timeout: 1500,
success: function(){
if(!newTab){
window.location = $(_this).prop('href');
}
},
error: function(){
if(!newTab){
window.location = $(_this).prop('href');
}
}
});
if(newTab){
return true;
}
});
我只是检查在单击过程中是否按下了ctrl
键并采取了相应的操作
谢谢你的提示,专家们。有时候,最简单的想法需要别人提醒。这是一个很棒的社区 多亏了@JeffB和@bobber205,我终于做到了:
$('a.item-link').on('click', function(e){
if(e.ctrlKey){
var newTab = true;
} else {
e.preventDefault();
var _this = this;
var newTab = false;
}
$.ajax({
url: "http://123.456.789.012/c",
type: 'GET',
data: {
'userId' : '1234'
},
dataType: 'jsonp',
cache: false,
timeout: 1500,
success: function(){
if(!newTab){
window.location = $(_this).prop('href');
}
},
error: function(){
if(!newTab){
window.location = $(_this).prop('href');
}
}
});
if(newTab){
return true;
}
});
我只是检查在单击过程中是否按下了ctrl
键并采取了相应的操作
谢谢你的提示,专家们。有时候,最简单的想法需要别人提醒。这是一个很棒的社区 为什么您希望AJAX是
异步的:false
??这就是Ajax的全部目的,为什么不按下[code>Ctrl键,就只执行preventDefault()
?我有没有其他方法来执行调用、重定向用户以及在按住Ctrl+Click键时仍然有效?正如我所说,preventDefault和window.location破坏了用户体验。FireFox以何种方式受到影响?“跨域请求和数据类型:“jsonp”
请求不支持同步操作。”()根据定义,jsonp是异步的,因为它需要加载一个新的
元素。为什么您希望AJAX是异步的:false
??这就是Ajax的全部目的,为什么不按下[code>Ctrl键,就只执行preventDefault()
?我有没有其他方法来执行调用、重定向用户以及在按住Ctrl+Click键时仍然有效?正如我所说,preventDefault和window.location破坏了用户体验。FireFox以何种方式受到影响?“跨域请求和数据类型:“jsonp”
请求不支持同步操作。”()根据定义,jsonp是异步的,因为它需要加载一个新的
元素。为什么您希望AJAX是异步的:false
??这就是Ajax的全部目的,为什么不按下[code>Ctrl键,就只执行preventDefault()
?我有没有其他方法来执行调用、重定向用户以及在按住Ctrl+Click键时仍然有效?正如我所说,preventDefault和window.location破坏了用户体验。FireFox以何种方式受到影响?“跨域请求和数据类型:“jsonp”
请求不支持同步操作。”()根据定义,jsonp是异步的,因为它需要加载一个新的
元素。为什么您希望AJAX是异步的:false
??这就是Ajax的全部目的,为什么不按下[code>Ctrl键,就只执行preventDefault()
?我有没有其他方法来执行调用、重定向用户以及在按住Ctrl+Click键时仍然有效?正如我所说,preventDefault和window.location破坏了用户体验。FireFox以何种方式受到影响?“跨域请求和数据类型:“jsonp”
请求不支持同步操作。”()根据定义,jsonp是异步的,因为它需要加载一个新的
元素。