Ale*_*Way 8 ssl wcf json jsonp
我们有一个SSL配置的网站,托管WCF服务.服务的绑定具有crossDomainScriptAccessEnabled="true"和使用JSON序列化通信.
当我们从http请求此服务时,它返回JSONP,但是当使用HTTPS请求它时,它只返回JSON.我需要以任何一种方式使用JSONP,请帮忙.
目前的配置是这样的:
<webHttpBinding>
<binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" />
</webHttpBinding>
<behaviors>
<serviceBehaviors>
<behavior name="JsonServiceBehaviors">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors><behavior name="webHttpBehavior">
<webHttp />
</behavior></endpointBehaviors>
</behaviors>
<services>
<service name="Backend.CIService" behaviorConfiguration="JsonServiceBehaviors">
<endpoint address="" binding="webHttpBinding"
bindingConfiguration="webHttpBindingWithJsonP" contract="Backend.ICIService"
behaviorConfiguration="webHttpBehavior"/>
</service></services>
Run Code Online (Sandbox Code Playgroud)
Lad*_*nka 19
如果使用此配置会发生什么:
<webHttpBinding>
<binding name="jsonp" crossDomainScriptAccessEnabled="true" />
<binding name="jsonpSsl" crossDomainScriptAccessEnabled="true">
<security mode="Transport" />
</binding>
</webHttpBinding>
<behaviors>
<serviceBehaviors>
<behavior name="JsonServiceBehaviors">
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="webHttpBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="Backend.CIService" behaviorConfiguration="JsonServiceBehaviors">
<endpoint address="" binding="webHttpBinding"
bindingConfiguration="jsonp" contract="Backend.ICIService"
behaviorConfiguration="webHttpBehavior"/>
<endpoint address="" binding="webHttpBinding"
bindingConfiguration="jsonpSsl" contract="Backend.ICIService"
behaviorConfiguration="webHttpBehavior"/>
</service>
</services>
Run Code Online (Sandbox Code Playgroud)
问题是,如果要通过HTTP和HTTPS调用服务,则必须提供两个端点 - 一个用于HTTP,另一个用于HTTPS.
| 归档时间: |
|
| 查看次数: |
6519 次 |
| 最近记录: |