0

我正在尝试访问托管在服务器上的 WCF 服务。该服务正在使用 SSL 连接。我在 IIS 中分配了一个自签名证书。该服务是一项宁静的服务。我尝试了两种不同的场景:

第一种情况:我将网站托管到同一服务器(访问服务的客户端应用程序)在这种情况下,服务是可访问的并且能够从服务中获得响应。

第二种情况:我将网站托管到本地主机,本地机器。从这里开始,当我尝试向托管在不同 Web 服务器上的服务方法发出请求时,它无法访问。显示错误“方法不允许”这是代码:

function testHttps()
  {

jsonText3=JSON.stringify({"Name":"Avinash"});
url="https://ServerIP/WcfSecureService/Service.svc/GetName";
    var xhr = createCORSRequest('POST', url);
    if (!xhr) {
      alert('CORS not supported');
    }

    xhr.onload = function() {          

        alert(xhr.responseText);
    };

        xhr.onerror = function() {
        alert('Woops, there was an error making the request.');         
    };

    xhr.setRequestHeader('Content-Type', 'application/json') ;
    xhr.send(jsonText3);
        }


function createCORSRequest(method, url)
    {
       var xhr = new XMLHttpRequest();

        if ("withCredentials" in xhr) 
          {         
           xhr.open(method, url, true);    
           } 
           else if (typeof XDomainRequest != "undefined") 
          {   
           xhr = new XDomainRequest();
           xhr.open(method, url);
         } else
     {
    xhr = null;
    } 
   return xhr;
  }

如何使用 HTTPS 使 CORS 调用成功?我不想在客户端站点上安装任何证书。如何从 Javascript 验证服务?

请建议...提前感谢您的帮助。

——阿维纳什

4

1 回答 1

0

检查这个这个

我认为您的问题与 https 无关:服务器是否以如下标头响应?

Access-Control-Allow-Origin: *

如果不是,它可能会过滤掉您的本地推荐人。

此外,如果您使用凭据,则服务器不能使用“*”通配符,并且必须指定每个允许的域,其中不包括本地主机,我猜。

于 2013-12-01T22:16:47.633 回答