我想使用jQuery的ajax()
函数对REST服务进行XHR调用。基本上,这可以正常工作,但REST服务只能通过https访问,并要求客户端使用客户端证书进行身份验证。
如何使用jQuery的ajax()
函数发送客户端证书?
答案 0 :(得分:10)
客户端证书身份验证是(a)仅在服务器请求时执行,(b)由浏览器透明地完成,就HTTP和JavaScript层而言。
当服务器请求客户端证书(可能需要在HTTP请求之后重新协商)时,浏览器应该提供一个弹出窗口来选择证书(这取决于浏览器,而不是任何JavaScript或HTML控件) )或根据其设置自动选择一个。
因此,jQuery的ajax()
函数无法对客户端证书做任何事情。
在我的脑海中,我不确定浏览器是否会触发客户端证书选择弹出窗口,如果它仅在AJAX调用期间首先发生(这可能取决于浏览器)。但是,如果已经进行了客户端证书选择(或者选择是自动的),浏览器将使用它进行身份验证,就像对任何其他正常请求一样。
答案 1 :(得分:2)
如果请求源和目标位于同一域并使用https:Securing AJAX & SSL,则可以进行ssl ajax调用。但是你不能在你的ajax调用中进行ssl身份验证。