simexis/laravel-ajax-redirector

Laravel 处理AJAX重定向的库

3.0.0 2018-02-20 08:01 UTC

This package is auto-updated.

Last update: 2024-09-14 23:52:59 UTC


README

Laravel 处理AJAX重定向的库

此包将AJAX调用重定向响应从301或302更改为278 JSON响应。XHR请求遵循重定向,这在很多情况下并不是预期的。大多数情况下,预期的是浏览器将客户端重定向到目标页面。

对于Laravel 4,请使用版本1.0.0。

对于Laravel 5,请使用版本2.0.0+

对于Laravel 5.6,请使用版本3.0.0+

安装

composer require simexis/laravel-ajax-redirector

更新composer后,将服务提供者添加到Laravel版本< 5.5.*的config/app.php文件中的providers数组中

'providers' => [
    Superbalist\AjaxRedirector\AjaxRedirectServiceProvider::class,
]

用法

在你的应用中,你将像以前一样继续进行重定向。

return redirect()->to('/test');

在javascript中,你需要监听导致HTTP 278响应的AJAX调用,并使用如:window.location.replace(json.redirect_url);进行客户端重定向

使用jQuery,可以使用全局AJAX事件处理器来完成此操作。

使用AngularJS,可以使用$http拦截器来完成此操作。

来自服务器的响应看起来可能像这样

HTTP/1.1 278 unknown status
Content-Type: application/json

{"redirect_url":"http:\/\/your.site.com\/test"}