使用 jQuery 执行 Ajax 调用时,遇到来自服务器的重定向指令可能会导致意想不到的后果。您可能会发现用户不自觉地盯着登录页面,而不是预期的 div 元素替换。
解决这一困境的方法,如一篇富有洞察力的文章中所建议的,涉及将 HTTP 状态代码调整为为 278。这会阻止浏览器自动处理重定向。但是,要获得更可靠的方法,请考虑使用 JSON。
在这种情况下,无论响应如何,Ajax 调用都会维护状态代码 200。响应正文包含在服务器上制作的 JSON 对象。该对象允许客户端 JavaScript 根据其内容确定适当的操作。
实现此方法模仿以下逻辑:
$.ajax({ type: "POST", url: reqUrl, data: reqBody, dataType: "json", success: function(data, textStatus) { if (data.redirect) { window.location.href = data.redirect; } else { $("#myform").replaceWith(data.form); } } });
在服务器上组成的数据对象,包含两个关键组件:data.redirect 和 data.form。此方法在 Ajax 调用期间处理重定向请求时提供了更大的灵活性和清晰度。
以上是如何处理 jQuery Ajax 调用中的服务器重定向而不出现意外行为?的详细内容。更多信息请关注PHP中文网其他相关文章!