Ajax调用WCF报405错误

环境:jquery1.8.1+Wcf(IIS托管)

错误:405错误(方法不被允许)

原因:ajax跨域调用错误

解决办法:

1.在发布WCF上面允许crossDomainScriptAccessEnabled

<system.serviceModel>
        <behaviors>

            <endpointBehaviors>
                <behavior name="JSONPAspNetAjaxBehavior">
                    <enableWebScript />
                </behavior>
            </endpointBehaviors>

            <serviceBehaviors>
                <behavior name="EnableMetadataBehaviors">
                    <serviceMetadata httpGetEnabled="true" />
                    <serviceDebug includeExceptionDetailInFaults="true" />
                </behavior>
            </serviceBehaviors>
        </behaviors>

        <bindings>
            <webHttpBinding>
        
                <binding name="HttpJsonpBinding" crossDomainScriptAccessEnabled="true"></binding>
            </webHttpBinding>
        </bindings>

        <serviceHostingEnvironment aspNetCompatibilityEnabled="true"    multipleSiteBindingsEnabled="true" >
            <serviceActivations>
                <add relativeAddress="FieldService.svc"   service="FieldService" factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"/>

            </serviceActivations>
        </serviceHostingEnvironment>

        <services>
            <service name="FieldService" behaviorConfiguration="EnableMetadataBehaviors">
                <endpoint address="" behaviorConfiguration="JSONPAspNetAjaxBehavior" binding="webHttpBinding" bindingConfiguration="HttpJsonpBinding" contract="FieldService" />
            </service>
        </services>
    </system.serviceModel>

 

2.实现类加上支持回调

[JavascriptCallbackBehavior(UrlParameterName = "jsoncallback")]

3.操作方法上加特性只支持Get,并且返回的数据类型是JSON

[OperationContract]
    [WebGet(ResponseFormat = WebMessageFormat.Json)]

 

4.客户端JS调用需要加上参数jsoncallback

/DataBaseGetService.svc/GetItemClassSelect?jsoncallback=?

好了,大致4个步骤。我也是从网上找到的解决方案,记录下,送给需要的同学

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值