我有一个WCF服务,我需要通过SSL运行,我从一个网页(使用jQuery)调用它,可能是也可能不是一个安全的页面.问题是,如果我从我网站上的安全网页拨打电话,那么电话会完全按照我的预期运行...但是,如果我从我网站上的非安全页面拨打电话到安全的网络服务(使用"https://";))它返回空数据(通过Firebug).我缺少什么?这甚至可能吗?
这是我正在调用的服务的配置(如果需要,我很乐意提供更多的东西):
<behaviors>
<endpointBehaviors>
<behavior name="AspNetAjaxBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="ClientServices.Membership" behaviorConfiguration="ServiceGatewayBehavior">
<endpoint address="" behaviorConfiguration="AspNetAjaxBehavior" bindingConfiguration="SecureBinding"
binding="webHttpBinding" contract="ClientServices.Membership" />
</service>
</services>
<bindings>
<webHttpBinding>
<binding name="SecureBinding">
<security mode="Transport"/>
</binding>
</webHttpBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud)
以下是调用服务的代码:
$.ajax({
url: serviceUrl,
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: '{"review":{"Username":"' + username + '"}}',
success: function (data) {
$.log(data);
},
error: function (a, b, c) {
$.log(b);
},
cache: false
});
Run Code Online (Sandbox Code Playgroud)
UPDATE
如果我将服务调用方法更改为"GET"并直接通过SSL调用它,它可以正常工作并输出我期望的jSon.它只在问题持续存在的非安全页面内.
假设站点和服务都位于 yourdomain.com,那么我的第一个想法是,当在非安全页面上时,您的浏览器不会附加其用于站点域的 cookie,因此当它调用服务时,它不会未经过身份验证。
您是否使用 Fiddler 查看原始 HTTP 标头数据,更重要的是,这些数据在工作页面和非工作页面上有什么不同?
卢克
归档时间: |
|
查看次数: |
530 次 |
最近记录: |