1

HTTP ページを呼び出している Visual Studio (asmx ページ) で Web サービスを作成します。

WebRequest request = WebRequest.Create("http://ws.geonames.org/countryCode?lat=" + lat + "&lng="+lng);

このサービスは HTTPS 経由で提供されます。

    https://mydevdomain.com/geonames/Service1.asmx/getGeoname

この jQuery コードからこのサービスを呼び出すとhttps://mydevdomain.com/page.html…</p>

  var request= $.ajax({
      type: "POST",
      url: "https://mydevdomain.com/geonames/Service1.asmx/getGeoname",
      data: "{ 'lat':'"+coordinatesMap[f][1]+"', lng:'"+ coordinatesMap[f][2]+"'}",
      contentType: "application/json; charset=utf-8",
      dataType: "json"
  });

… エクスプローラーに、安全でないコンテンツがあるという古典的なアラートが表示されます。なんで?jQuery は、サービスが安全でないページを呼び出していることをどのように認識できますか?

PSアラートページを避けたかったので、サービスを行いました。

4

1 に答える 1

0

これが役立つかどうかはわかりませんが、そのアラートで発生した同様の問題が修正されました。

ServerCertificateValidationCallbackを使用して修正しました。正確に重要というわけではありませんが、私のクラスはASMX C#WebServiceでした(以下で詳しく説明します)

以下の例:

//Force Trust with server
ServicePointManager.ServerCertificateValidationCallback = delegate(
  Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) {return (true); };

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://999.999.99/PI/services/UCP");
request.Headers.Add("SOAPAction", "");
request.ContentType = "text/xml;charset=\"utf-8\"";
request.Accept = "text/xml";
request.Method = "POST";

その他のコード..。

using System;
using System.Collections.Specialized;
using System.Net;
using System.Net.Security;
using System.IO;
using System.Xml;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService]
public class UCPSvc : WebService {

    [WebMethod (Description="Proxy for ACS UCP WebService")]
    public XmlDocument Proxy()
    {
        //...
    }
}
于 2012-06-27T17:25:11.887 に答える