Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从本地html文件通过ajax over SSL调用web api?_Javascript_Ajax_Ssl_Cors - Fatal编程技术网

Javascript 如何从本地html文件通过ajax over SSL调用web api?

Javascript 如何从本地html文件通过ajax over SSL调用web api?,javascript,ajax,ssl,cors,Javascript,Ajax,Ssl,Cors,我在五月的桌面上有一个本地html文件,它访问一个web api(JAX-RS),该api用一些JSON数据进行响应。我启用了CORS,一切正常,但只有在没有SSL的情况下。如何使其与SSL一起工作?我使用自签名证书,可以从WPF应用程序调用此web api,但从JavaScript应用程序(独立html文件)调用此web api,当Chrome在POST之前发送飞行前选项时,请求似乎甚至没有到达服务器。我还尝试在浏览器中导入自签名证书,但没有任何更改。飞行前请求不允许包含实体正文或凭据。如果您

我在五月的桌面上有一个本地html文件,它访问一个web api(JAX-RS),该api用一些JSON数据进行响应。我启用了CORS,一切正常,但只有在没有SSL的情况下。如何使其与SSL一起工作?我使用自签名证书,可以从WPF应用程序调用此web api,但从JavaScript应用程序(独立html文件)调用此web api,当Chrome在POST之前发送飞行前选项时,请求似乎甚至没有到达服务器。我还尝试在浏览器中导入自签名证书,但没有任何更改。

飞行前请求不允许包含实体正文或凭据。如果您使用的是预引导请求,则不能使用双向SSL

解决方案是更改服务器,使证书成为可选的。我只使用ApacheHTTP服务器或Tomcat实现了这一点,但我假设其他服务器也能够实现这一点

在apache中,设置应更改为

SSLVerifyClient optional
clientAuth="want"
在Tomcat中,SSL设置应更改为

SSLVerifyClient optional
clientAuth="want"
没有此更改,只有CORS简单的请求才能工作