Javascript fetch()在具有SSL客户端身份验证的Firefox中失败
我有一个使用SSL客户端身份验证的web服务器。该服务器上的网页使用Javascript fetch()在具有SSL客户端身份验证的Firefox中失败,javascript,firefox,ssl,Javascript,Firefox,Ssl,我有一个使用SSL客户端身份验证的web服务器。该服务器上的网页使用fetch()API发出相同的原始GET请求 在Chrome中,客户端证书按预期在SSL握手中发送,导致200“ok”响应。在Firefox中,证书不被发送,导致403“禁止”响应 在Firefox中,如果我将它从使用fetch()切换到XMLHttpRequest,它就会工作。如果我直接从Firefox的URL栏加载相同的URL,它就会工作。问题似乎仅限于Firefox上的fetch() 以前有人见过这个吗?是否有任何方法可以
fetch()
API发出相同的原始GET
请求
在Chrome中,客户端证书按预期在SSL握手中发送,导致200“ok”响应。在Firefox中,证书不被发送,导致403“禁止”响应
在Firefox中,如果我将它从使用fetch()
切换到XMLHttpRequest
,它就会工作。如果我直接从Firefox的URL栏加载相同的URL,它就会工作。问题似乎仅限于Firefox上的fetch()
以前有人见过这个吗?是否有任何方法可以使
fetch()
在Firefox中与SSL客户端身份验证很好地配合使用,或者我需要在任何地方都使用XMLHttpRequest
?谢谢。我刚刚解决了自己的问题。这就是失败之处:
fetch(someUrl)
这解决了问题:
fetch(someUrl, { credentials: 'include' })
显然,Chrome(v54)和Firefox(v45)之间的行为有所不同。谢谢,我最近切换到Firefox,不明白为什么我使用客户端证书认证的网站不能正常工作。这就解决了它!