V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jiezhi
V2EX  ›  问与答

问一个玄学问题,同一个网络请求中带了双斜杆,同一份代码,同事的请求返回 200,我的请求就是 405?

  •  
  •   jiezhi · 2019-08-09 16:48:14 +08:00 · 1206 次点击
    这是一个创建于 1694 天前的主题,其中的信息可能已经有所发展或是发生改变。

    新接手的一个项目,怎么都启动不了 报错:

    Invocation of init method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository]: Constructor threw exception; nested exception is com.github.vanroy.springdata.jest.exception.JestElasticsearchException: Cannot execute jest action , response code : 405 , error : 405 Method Not Allowed , message : null
    

    断点跟进去后发现请求 es 一个地址出错了,http://192.168.x.x:9200//goods , 返回 405,外部工具调用同样 405。去掉配置文件后的斜杆后就可以正常启动了。

    郁闷的是,同样的代码,同事那边就可以运行成功,断点进去,就是这个地址,他那边 HEAD 请求回来就是 OK 的。然后他curl --head "http://192.168.x.x:9200//goods" 返回也是 405,那他代码是怎么请求成功的?

    代码中的请求是 jest-6.3.1 执行的。

    郁闷了。

    4 条回复    2019-08-09 17:13:03 +08:00
    yj21world
        1
    yj21world  
       2019-08-09 16:50:49 +08:00   ❤️ 1
    抓一下这个请求的包,对比一下

    预估你们代码并不一致
    Danswerme
        2
    Danswerme  
       2019-08-09 16:52:03 +08:00 via Android   ❤️ 1
    斜杠转义了?
    xsir2020
        3
    xsir2020  
       2019-08-09 16:57:29 +08:00   ❤️ 1
    HTTP 405 错误 方法不被允许 (Method not allowed),
    很多可能造成这种情况,
    比如 ajax 跨域 ,options 预请求 会造成错误,但是 postman 等客户端就不会产生这种错误.

    1、首先抓包对比是否一致
    2、看大家的客户端都是些什么。
    jiezhi
        4
    jiezhi  
    OP
       2019-08-09 17:13:03 +08:00
    @yj21world #1
    @xsir2020 #3 Spring 项目初始化请求的,用的第三方包,走的 HEAD 请求。我这边用 Paw、curl 和浏览器请求都是 405

    也许抓包应该是最直接的了,看下同事有没有心情一起抓包验证了,我这边解决方案就是把配置中地址最后斜杆去了就行了。

    就是有点莫名其妙。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2796 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:46 · PVG 22:46 · LAX 07:46 · JFK 10:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.