Laravel API路由放置/修补方法:错误-此路由不支持GET方法
拉维版本:7 文件路径:“routes/api.php” 我只有一个用于PUT/PATCH的api路由,我没有用于此端点的GET路由 在routes/api.php中: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
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发送