在 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