解决方案" />
早上好☕️,我的开发者们??。我希望你做得很好,因为我做得很好。今天,我决定来拯救一些遇到 405 方法不允许 的人。无论您是创建 REST API 还是请求 URL,您都会收到 405 错误。这篇文章已经涵盖了您。
我一直在尝试请求我的网址,但收到上述错误
这是我请求的网址
http://localhost:8080/users/services/start/import
@Path("/start") public class StartService { @GET @Path("/import") @Produces({"text/plain","application/xml","application/json"}) public String getVersion() { String ver=""; try{ Runtime rt = Runtime.getRuntime(); Process pr = rt.exec("C:\server\dgr -v" ); BufferedReader stdInput = new BufferedReader(new InputStreamReader (pr.getInputStream())); BufferedReader input = new BufferedReader(stdInput); // String ver =""; StringBuffer verOutput = new StringBuffer(); while((ver = input.readLine()) != null){ verOutput.append(ver + "\n"); System.out.println(ver); } }catch (Throwable t) { t.printStackTrace(); } finally { } return ver; } }
在调查错误原因和解决方案时,我发现当您对仅允许 POST 请求或 VSV 的内容尝试 Get 请求时,可能会发生 405 错误。
其次,您可能已经在需要 https
我发现错误的原因是内容类型问题
改变了这个 @Produces({"text/plain","application/xml","application/json"})
对此
@Produces("text/plain") 广告效果非常好。
这是因为发送到 API 的 headers/content-type 必须与其预期匹配,否则将返回 HTTP 405。
访问此链接以了解有关此类错误的更多信息
如果您遇到同样的错误,请检查一些可能的区域
CORS 问题:
如果您的前端和后端运行在不同的端口上(例如,前端在 4200 上,后端在 8080 上),请确保在后端服务器上正确配置 CORS(跨源资源共享)以允许来自前端源的请求3。
调试服务器响应:
在服务器端实现日志记录以捕获传入请求及其方法。这可以帮助您确定请求是否到达服务器以及处理方式。
使用工具测试:
使用 Postman 或 cURL 等工具手动向您的终端节点发送 POST 请求。这可以帮助确定问题是出在 Angular 应用程序中还是服务器本身。
在下面的评论中分享你的想法⬇️
周二快乐?
以上是HTTP 状态 - Rest API 的方法不允许错误 -> 解决方案的详细内容。更多信息请关注PHP中文网其他相关文章!