在 Laravel POST 请求上重定向 302

Posted

技术标签:

【中文标题】在 Laravel POST 请求上重定向 302【英文标题】:Redirect 302 on Laravel POST request 【发布时间】:2015-07-29 15:03:24 【问题描述】:

我正在开发一个Laravel Web Service。 当我使用 Web 表单尝试我的 POST 路由时,一切正常,但是当我尝试使用像 Postman 这样的 REST 客户端时,它并没有得到应有的响应。

它给了我状态码302,并重定向到“/”。有什么问题?

【问题讨论】:

你是否使用邮递员的 csrf 令牌? 不,这有必要吗?在中间件中,我已经删除了 csfr 令牌中间件。 尝试运行这个命令 php artisan routes 如果你的意思是路由:列表,我已经尝试过了,在中间件列中我有任何东西 【参考方案1】:

这对于遇到相同问题的其他用户可能有用,但上述解决方案无法解决:

确保表单字段名称例如 <input type="text" name="document_name"> (document_name) 与模型中声明的规则字段名称匹配。 public static $rules = ['document_name' => 'required|string']; 它不会抛出任何错误,日志中什么也没有,它只是重定向到表单,因此很难找到问题。

【讨论】:

谢谢,这正是我的问题,我在输入和规则中使用了不同的名称。 这里...谢谢...这也是我的问题...谢谢【参考方案2】:

使用 Postman 访问端点时,设置 Header

Accept: application/json

或者 Laravel 永远不会知道它是一个 API 客户端,因此会使用 302 消息进行重定向。 这是最新 Laravel 版本的机制,因为它们在 web.php 路由器旁边提供 api.php 路由器。

【讨论】:

【参考方案3】:

当您尝试通过 Postman POST 请求时,您需要添加 _token 字段及其值,用于保护 XSS 攻击。参见https://laravel.com/docs/5.2/routing#csrf-protection

【讨论】:

不要将链接发布为答案,而是添加一些文本来解释此答案如何帮助 OP 解决当前问题。谢谢【参考方案4】:

Http 状态码 302 用于重定向。可能是服务器端的问题,请检查laravel项目的错误日志文件apache的错误日志文件

【讨论】:

【参考方案5】:

在邮递员中你应该指出你发送的数据是'x-www-url-formurlencoded'

【讨论】:

您需要在 ios 应用程序的 post 方法中发送“x-www-url-formurlencoded”这个。您用于 ios 应用程序的后端引擎。您可以使用 php 作为后端。如果您使用 php对于后端,您可以通过 CURL 发送它或使用 php 依赖项。 我的后端是用 Laravel 做的,我的 POST 路由是一个简单的注册路由,它返回一个令牌。在我用 laravel 制作的网站上可以正常工作。 已解决:问题是我的请求中有一些我在请求中遗漏的必填字段。 我想哭。我刚刚花了最后一个小时撕扯我剩下的头发试图弄清楚这一点。血腥表格请求 @Bellots 我希望你能用实际的解决方案来回答你自己的问题。此答案已被接受,但显然不完整,我必须阅读您的 cmets 才能了解您实际做了什么。

以上是关于在 Laravel POST 请求上重定向 302的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.4 POST 到 API 重定向 302 而不是返回验证错误

在codeigniter中打开SSL认证网站时,301不会在http上重定向而不是重定向302

我的 POST ajax 请求在 Laravel 控制器上返回 302

JMeter POST 请求返回 200 OK 而不是 302(重定向)

301,302,303,307重定向区别

关于网络请求302,重定向的问题