【发布时间】:2023-04-09 13:32:01
【问题描述】:
我正在使用基于 JWT 的 API。
我正确传递了授权标头(我的意思是在代码中),
使用headers.set('Authorization', 'token'),我使用的是正确的方法,即 GET。
当我为应用程序提供服务(使用 ionic 3)时,出现错误 405(不允许使用方法),但是当我使用 POSTMAN 或将代码 sn-p(从 POSTMAN 生成)粘贴到控制台时,相同的请求有效.
这是工作请求的两个捕获(使用从 POSTMAN 到控制台的代码 sn-p)和不工作的请求(来自 ionic 应用程序)。
顺便说一句,授权有点奇怪,我用红色突出显示。
【问题讨论】:
-
不是重复的,但可能是相关的:stackoverflow.com/questions/39408413/… 另外,你需要在header前面加上“Bearer”,而不是仅仅使用token。
-
我正在使用承载
-
我怀疑这是 CORS 问题,因为您看到的是选项请求。查看上面的链接,看看是否有帮助。
-
当我使用代码 sn-p form postman 时,它可以工作。 xhr.open( “GET”, “xx.xxx.xx.xx:8080/api/clients"); xhr.setRequestHeader(” 授权”, “承载eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VybmFtZSIsImlzcyI6Im15LWF3ZXNvbWUtd2Vic2l0ZS5jb20iLCJyb2xlIjoiYWRtaW4iLCJpYXQiOjE1MjE4MTI5NjN9.n418jsAmjsLNt99GoQIOzKFyK3MaMrWm77ovxJtNNDc”); 跨度>
-
是的,但浏览器不是邮递员。浏览器不会通过触发您告诉它们的确切请求来工作 - 如果资源不是来自同一来源,那么它必须先通过一个过程来发现它可以对选项请求做什么,然后再进行您想要的实际请求。在您的示例中,它的 options 方法失败了,因此它永远不会发送 GET 请求。请参阅此处了解更多信息:restlet.com/company/blog/2015/12/15/…
标签: http ionic3 angular4-httpclient