jQuery Ajax和重定向响应从服务器
jQuery Ajax and redirect response from server
我有一个情况,我发送jquery ajax post请求,但在我的web应用程序,这个特定的ajax请求的处理程序(处理后的参数),将调用另一个控制器中的一个动作(不确定这是否被称为重定向),基本上呈现整个网站页面(如页面刷新)。但是我注意到浏览器一直显示相同的页面,而不是刷新到新页面的内容。
有什么问题吗?我该如何处理这种情况?
我必须编辑我的问题,因为我改变了ajax调用。
代码是这样的:
function chkSubmit(event, actionType) {
var msgid = showlst('Please wait ...');
var data = ''
if (actionType == 'IAmDone') {
var letters = 'e,b,c'
data = 'actionType=' + actionType + '&letters=' + letters;
} else data = 'actionType=' + actionType;
$j.ajax({
type: 'POST',
url: context + '/app/handleChk',
data: data
});
return false;
}
当单击页面上的按钮时,上述函数运行。但是这个页面一直在显示。浏览器调试器显示,它确实收到了来自新操作的200 OK响应,它应该用这个响应来刷新页面。我使用Chrome浏览器和jquery 1.6.1
很抱歉我在代码示例中的打字错误。
服务器无法从ajax请求进行重定向。归根结底,ajax涉及到客户端(浏览器)。如果你想重定向,你可以这样做,但它必须在客户端,在回调中完成。你可以通过从服务器返回一个包含你想要重定向到的url的对象来做到这一点——然后你可以使用javascript来改变文档的location属性。我认为,如果您不是在所有情况下都重定向,或者您的服务器端调用是一个长时间运行的过程,那么这将是有意义的。如果两者都不是,那么ajax调用可能从一开始就没有意义。
我可能误读了您的问题,但是在ajax调用中您的成功回调函数在哪里?这就是你通常将结果呈现到视图的地方,此外,你可以使用错误回调来获取一些数据,如果有什么出错了:
function chkSubmit(event, actionType) {
var msgid = showlst('Please wait ...');
var actionType = type // per j. tuskan - looks like no such var in scope
var data = ''
if (actionType == 'IAmDone') {
var letters = 'e,b,c'
data = 'actionType=' + actionType + '&letters=' + letters;
} else data = 'actionType=' + actionType;
$j.ajax({
type: 'POST',
url: context + '/app/handleChk',
data: data,
success:function(the_data){
alert("Now I can do stuff with the ajax response which is: "+the_data);
}
});
return false;
}
@ek_ny所说的例子。
jQuery.ajaxSetup({
complete: function (request, textStatus) {
// header inserted manually on the server.
// you should block the automatic redirect headers
// inserted by the server.
var location = request.getResponseHeader("Location");
if(location) window.location = location;
}
});
您不能使用Ajax进行服务器端重定向,因为无论何时使用Ajax,响应都会到达Ajax的成功/错误函数。你可以在JavaScript中使用form来实现服务器端重定向。
- 带Jquery的wep API,加载资源失败:服务器响应状态为404(未找到)
- 如何在 http 上调用 end().服务器响应对象
- 将服务器响应格式化为人类可读
- 尝试获取服务器响应
- 如何在 Javascript 函数中拦截 Web 服务器响应
- 如何从服务器响应中显示phonegap中的图像
- Nodejs-websocket:如何在没有服务器响应的情况下连续发送客户端消息
- 正在分析Meteor中的错误服务器响应
- 正在从LWIP服务器响应中检索16位整数
- 可以´t从对象XMLHttpRequest获取服务器响应
- 试图理解返回javascript方法的服务器响应
- AJAX 中的常见服务器响应页原因
- 节点服务器响应错误: process.nextTick(function(){throw err;});.
- GO 中的长时间轮询,服务器响应不当
- 在 Iframe 中发布服务器响应
- Jquery 响应从服务器响应中修剪值
- 在铁表单提交后检查服务器响应
- 量角器单击链接并将服务器响应与文件进行比较
- 如何确定 Node .js服务器响应是否已停止
- 当服务器响应缓慢时,jQuery 在加载/就绪时不触发