zoukankan      html  css  js  c++  java
  • 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个步骤。我也是从网上找到的解决方案,记录下,送给需要的同学

  • 相关阅读:
    poj 1087 A Plug for UNIX
    poj 1149 : PIGS
    自己制作的我们学校的校园无线网自动登录程序(C#实现)
    poj 1067取石子(威佐夫博奕)
    poj 1088滑雪
    SQL Server 2005 系统数据介绍:sys.dm_exec_requests
    一票难求:我为铁道部献计献策!
    Integration Services 学习(7):包部署
    Integration Services 学习(8):事务
    Integration Services包部署常见问题汇总
  • 原文地址:https://www.cnblogs.com/flyfish2012/p/3075631.html
Copyright © 2011-2022 走看看