通过HTTPS

时间:2018-02-11 16:06:37

标签: https cross-domain microsoft-edge

我正在尝试进行Edge扩展,它将与除网页原点之外的其他服务器进行通信。然而,沟通似乎失败了。

当源是外部且跨域请求目标位于Intranet时,我读到了有关跨域请求的问题。所以我已经将内联网服务器暴露给了互联网。但这没有任何帮助。

我尝试尽可能简单地运行fetch()并获得此结果:

  

取(" https://fake.domain.info/api/browser/authenticate/&#34)。然后加入((响应)   => {console.log(response);})。catch((error)=> {console.log(error);})

     

[object Promise]:{}

     

[object Error]:{description:"无法获取",消息:"无法   fetch",number:-2147418113}

我在调试窗口检查了网络流量,发现了奇怪的记录:

  

名称协议方法结果内容类型接收时间发起者   https://fake.domain.info/api/browser/authenticate/ HTTPS GET 200(来自   缓存)0 s

我真的不明白为什么"(来自缓存)"出现。所以用WireShark检查了请求。我发现的是:

  

61 3.004629 xxx.xxx.xxx.xxx 192.168.124.144 TLSv1.2 501服务器您好,   证书,服务器密钥交换,服务器Hello完成

     

62 3.004666 192.168.124.144 xxx.xxx.xxx.xxx TCP 54 51965→443 [ACK]   Seq = 207 Ack = 1908 Win = 261632 Len = 0

     

...

     

86 3.010645 192.168.124.144 xxx.xxx.xxx.xxx TCP 54 51965→443 [FIN,ACK]   Seq = 207 Ack = 1908 Win = 261632 Len = 0

     

87 3.011785 xxx.xxx.xxx.xxx 192.168.124.144 TCP 60 443→51965 [ACK]   Seq = 1908 Ack = 208 Win = 65536 Len = 0

     

...

     

89 3.012215 xxx.xxx.xxx.xxx 192.168.124.144 TCP 60 443→51965 [RST,ACK]   Seq = 1908 Ack = 208 Win = 0 Len = 0

我不明白为什么在TLS握手后立即重置连接。 打开网页工作正常。我已经使用WireShark检查了它,发现第一个连接在TLS握手后立即关闭,但是新的一个立即创建,流量通过这个连接没有问题。

我检查了服务器端日志 - 没有注册的问题。并且没有记录任何HTTP请求。

当我尝试通过普通HTTP运行相同的请求时,它工作正常:

  

取(" http://fake.domain.info/api/browser/authenticate/&#34)。然后加入((响应)   => {console.log(response);})。catch((error)=> {console.log(error);})

     

[object Promise]:{}

     

[object Response]:{body:Object,bodyUsed:false,headers:Object,   ok:false,重定向:false ...}

HTTP 404按预期返回

所以我发现问题与TLS连接有关。

另一件事:只有在Edge中执行此问题时才会出现问题。在Firefox中进行操作时,它可以正常工作:

  

取(" https://fake.domain.info/api/browser/authenticate/&#34)。然后加入((响应)   => {console.log(response);})。catch((error)=> {console.log(error);})

     

承诺{:"待定" }

     

回复{type:" basic",url:   " https://fake.domain.info/api/brows ...",重定向:false,状态:   404,ok:false,statusText:" [{" errors":[{" message":" API无效...",   headers:Headers,bodyUsed:false}

我在运行来自Firefox的请求时检查了WireShark中的流量 - TLS握手后的连接未关闭,但应用程序数据立即发送。

是否有一些已知的Edge行为,有没有办法解决它?可能是某些服务器配置错误?

0 个答案:

没有答案