如何从https网站调用web api?

时间:2016-10-03 14:24:37

标签: angularjs asp.net-web-api

我有一个通过https协议提供的网站。这是用angularJs编写的。该网站通过http调用asp.net web api服务,然后我收到此错误:

  

angular.js:10765混合内容:“https://example.com/forms/#/question-set-4#topOfThePage”页面是通过HTTPS加载的,但是请求了一个不安全的XMLHttpRequest端点“http://webapiaddress/api/ControllerName/GenerateCaptcha”。此请求已被阻止;内容必须通过HTTPS提供。(匿名函数)@ angular.js:10765r @ angular.js:10558g @ angular.js:10268(匿名函数)@ angular.js:14792 $ eval @ angular.js:16052 $ digest @ angular.js:15870 $ apply @ angular.js:16160g @ angular.js:10589T @ angular.js:10787w.onload @ angular.js:10728   angular.js:10765 XMLHttpRequest无法加载http://webapiaddres/api/SomeController/GenerateCaptcha。无法开始加载。

所以错误告诉我,我应该通过https地址为web api自托管服务。所以在那个web api自我主机的配置中,我将它改为https // webapiaddres /

但后来我得到了这个:

  

angular.js:10765 GET   HTTPS:/ webapiaddress / API / SomeController / GenerateCaptcha   净:: ERR_INSECURE_RESPONSE

我做错了什么?为什么会这样呢?奇怪的是,这并不是我没有启用CORS的尖叫,但这可能是因为这个web api selfhost和该站点在同一台服务器上。我在谷歌找不到任何类似的问题。

1 个答案:

答案 0 :(得分:0)

我设法解决了我的同事的问题,这非常简单。乍一看它没有出现。我在Chrome浏览器中运行了web api的地址,并且有一个接受证书的请求。当我这样做时,一切顺利。这是管理员的工作,而不是代码,但这是非常有趣的经历。