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

标签 javascript ajax ssl cors

我可能在桌面上有一个本地 html 文件,它访问一个 Web API (JAX-RS),它响应一些 JSON 数据。我启用了 CORS,一切正常,但只有在没有 SSL 的情况下。我怎样才能让它与 SSL 一起工作?我使用自签名证书并且可以从 WPF 应用程序调用此 Web api,但是从 JavaScript 应用程序(独立的 html 文件),当 Chrome 在 POST 之前发送 OPTIONS 飞行前时,请求似乎甚至没有到达服务器.我也尝试在浏览器中导入自签名证书,但没有任何改变。

最佳答案

预检请求不允许包含实体主体或凭据。如果您使用预检请求,则不能使用双向 SSL。

解决方案是更改服务器以使证书可选。我只使用 Apache HTTP 服务器或 Tomcat 完成过此操作,但我认为其他服务器也可以执行此操作。

在 apache 中,设置应更改为

SSLVerifyClient optional

并且在 Tomcat 中,SSL 设置应该更改为

clientAuth="want"

如果没有此更改,则只有 CORS 简单请求可以工作。

关于javascript - 如何从本地 html 文件通过 SSL 通过 ajax 调用 web api?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18491098/

相关文章:

c# - 如何以编程方式或使用命令行程序更新现有 CA 模板的有效期

ssl - IIS 将 HTTP 重定向到 HTTPS 重定向循环

c++ - 在使用 WinCrypt 证书进行身份验证的 Windows 上创建 SSL 套接字?

javascript - 单击事件更新 API 数据

javascript - 直接在 jQuery 对象上定义实用函数有什么好处吗?

javascript 和 smarty

javascript - 如何使用 Ajax 连接到 Java servlet?

php - 使用 jQuery 和 Wordpress 获取结果时发生 fatal error

javascript - JS 回调函数

php - 序列化数组并通过 get 方法传递它的最佳方法是什么