Javascript 客户端重定向问题

Javascript 客户端重定向问题,javascript,ajax,redirect,Javascript,Ajax,Redirect,我现在正在建立一个使用大量ajax交互的站点。现在正在进行的基本流程是对客户端和服务器端的数据进行验证,如果数据正确,那么来自和AJAX post的响应将是下一页的url 当我收到url客户端时,我当前正在使用window.location=url执行重定向 出于某种原因,这一点似乎不正确。具体来说,通过查看各种开源项目,我很少看到它。我想知道我上面描述的交互是否正确,如果不正确,我可以采取什么不同的方法来纠正我当前的设计。您所做的完全正确,这是人们采取的正常方法。需要记住的是,如何处理失败的请

我现在正在建立一个使用大量ajax交互的站点。现在正在进行的基本流程是对客户端和服务器端的数据进行验证,如果数据正确,那么来自和AJAX post的响应将是下一页的url

当我收到url客户端时,我当前正在使用
window.location=url
执行重定向


出于某种原因,这一点似乎不正确。具体来说,通过查看各种开源项目,我很少看到它。我想知道我上面描述的交互是否正确,如果不正确,我可以采取什么不同的方法来纠正我当前的设计。

您所做的完全正确,这是人们采取的正常方法。需要记住的是,如何处理失败的请求,即您的帖子由于某种原因而失败,或者ajax请求中出现了失败等

有一个有趣的问题,请阅读标记的答案:


希望这有助于

这挫败了AJAX的全部要点:避免为每次交互加载完整页面,从而限制带宽使用并提高响应速度


在您的设计中,每个交互都需要两个请求:一个用于验证数据,另一个用于加载下一个完整页面。您最好完全避免使用AJAX:它肯定会更有效率。如果验证失败,为什么不返回一个错误响应,如果验证成功,为什么不返回一个成功响应,并在post后显示什么内容?

重定向的最佳方式是从服务器端,基本上,因为服务器知道您是否可以访问此页面,并在页眉中响应302重定向,或者只返回页面本身,所以如果服务器批准您对页面的请求,AJAX应该处理页面中的交互,而不考虑安全性


无论如何,如果你不关心安全性,那么
window.location
就可以了。

这种方法没有问题。我的所有页面都是通过重定向加载的,有时我手动返回html并将其注入DOM(这就是你说我应该做的)。我想问题是我使用的ajax比我应该使用的多,相反,我应该使用传统的HTTP帖子来避免开销。为什么window.location违反了安全性?事实并非如此。我的意思是,您应该控制从服务器对数据的访问(就像您所做的那样),并在那里重定向表单,而不是通过AJAX验证对内容的访问。安全问题是,用户可以轻松禁用JS,因此他们在仍然可以查看页面时不会被重定向。