Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel API路由放置/修补方法:错误-此路由不支持GET方法_Laravel_Api_Routes - Fatal编程技术网

Laravel API路由放置/修补方法:错误-此路由不支持GET方法

Laravel API路由放置/修补方法:错误-此路由不支持GET方法,laravel,api,routes,Laravel,Api,Routes,拉维版本:7 文件路径:“routes/api.php” 我只有一个用于PUT/PATCH的api路由,我没有用于此端点的GET路由 在routes/api.php中: Route::match( ['put', 'patch'], 'phc/client/edit', 'Api\\PhcUserController@putByNo')->middleware('checkTypeUser:ecommerce' ); 当我与邮递员尝试此路线时,使用PUT方法会出现以下错误: Symfon

拉维版本:7 文件路径:“routes/api.php”

我只有一个用于PUT/PATCH的api路由,我没有用于此端点的GET路由

在routes/api.php中:

Route::match( ['put', 'patch'], 'phc/client/edit', 'Api\\PhcUserController@putByNo')->middleware('checkTypeUser:ecommerce' );
当我与邮递员尝试此路线时,使用PUT方法会出现以下错误:

Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException: The GET method is not supported for this route. Supported methods: PUT, PATCH.
我做错了什么

注意:我有其他GET端点,所有这些都工作得很好,我开始使用PUT/PATCH方法,现在出现了这个错误。我无法使用Route::Resource,因为我无法控制数据库中的模型

这是邮递员的截图

即使使用_方法:PUT

拉威尔航线:列表

新信息 我通过ssh在远程服务器上工作。我将项目导入了本地机器服务器,一切正常。 所以我认为这是某种远程服务器配置问题,服务器使用NGINX/APACHE。因为远程服务不是由我管理的,所以我向负责管理的公司报告了问题。 我很快就会得到新的信息,我希望它能帮助其他人解决同样的问题

新信息-第二部分
服务器报告一切正常:(.为什么my laravel在本地服务器上的PUT/PATCH上运行良好,但在远程服务器上运行不正常?

将postman方法更改为POST,然后在身体中添加新参数:

"_method" : PUT

这是因为HTML表单不支持PUT、PATCH或DELETE操作。因此,在定义从HTML表单调用的PUT、PATCH或DELETE路由时,您需要在表单中添加隐藏的_方法字段

将postman方法更改为POST,然后在正文中添加新参数:

"_method" : PUT

这是因为HTML表单不支持PUT、PATCH或DELETE操作。因此,当定义从HTML表单调用的PUT、PATCH或DELETE路由时,您需要在表单中添加一个隐藏的方法字段

问题出在远程服务器上,某些NGINX错误配置只允许GET/POST方法

他们修好后,它就像在本地一样工作


感谢所有的帮助。

问题出在远程服务器上,一些NGINX错误的配置只允许GET/POST方法

他们修好后,它就像在本地一样工作


谢谢您的帮助。

您可以分享您的邮递员请求吗,例如将其导出到curl?谢谢。这里的消息很清楚
['put','patch']
您允许put和patch,但请尝试访问
Get
或在此处添加Get
['Get','put','patch']
为了解决这个问题,我不想为这个端点创建一个get方法,为什么我要放一个get方法呢?在postman中,我不想用get,而是用put-ouPATCH@Pirex360使用“any”代替put或patch或get@sandy,但如果我用“any”,好的,它可以工作…但当我尝试访问此终结点的GET方法时,用户未收到消息的方法不存在…因为any,为终结点提供了GET方法…我不想为终结点提供GET方法。有可能是这样的吗?请您共享您的邮递员请求,例如将其导出到curl?谢谢。这里的消息很清楚
['put','patch']
您允许put和patch,但尝试访问
Get
或在此处添加Get
['Get','put',patch']
以解决此问题,但我不想为此端点创建Get方法,为什么我应该放置Get方法?在postman中,我不尝试使用Get,而是使用put-ouPATCH@Pirex360使用“任何”而不是放置、修补或get@sandy,但如果我用“any”,好的,它可以工作…但是当我尝试访问此端点的GET方法时,用户未收到消息的方法不存在…因为any,为端点提供了GET方法…我不想为端点提供GET方法。有可能是这样吗?@Pirex360如果对您有效,请将其标记为answerOk@sandy,但答案不起作用。我不是使用html表单时,我只使用postman来测试我的端点。没有令牌csrf和“\u方法”:PUT needed.在laravel中,路由位于routes/api.php中,我不在routes/web中工作。phpIt就像邮递员一样忽略我选择的方法,我单击PUT方法并发送…它总是说:此路由不支持GET方法。支持的方法:PUT,PATCH。又添加了两个屏幕截图,其中一个带有“\u方法”:“PUT”和其他分享路线的人:名单Laravel@Pirex360你需要用parms“_方法”将请求作为帖子发送:“PUT”@Pirex360如果对你有效,请将其标记为answerOk@sandy,但答案不起作用。我没有使用html表单,我只是使用postman来测试我的端点。没有令牌csrf和“_方法”:PUT needed.在laravel中,路由位于routes/api.php中,我不在routes/web中工作。phpIt就像邮递员一样忽略我选择的方法,我单击PUT方法并发送…它总是说:此路由不支持GET方法。支持的方法:PUT,PATCH。又添加了两个屏幕截图,其中一个带有“\u方法”:“PUT”和其他分享路线的人:名单Laravel@Pirex360您需要使用parms“\u method”:“PUT”将请求作为POST发送