Jquery调用wcf服务给出200个分析器错误

时间:2012-06-05 17:48:57

标签: asp.net json wcf jquery jsonp

我是WCF世界的新手。我有一个包含Web App的解决方案(其中包含对WCF服务应用程序的JQuery Ajax调用,这是解决方案中的另一个项目。经过2天的工作(破解)后,我处于可以传递请求并获得响应的状态enter image description here

但是在尝试显示警报时会给我200解析器错误。enter image description here

任何帮助都将非常感谢

进一步参考

$.ajax({
                    async: true,
                    type: 'GET', //GET or POST or PUT or DELETE verb
                    url: 'http://localhost:61057/Service1.svc/GetCustomer', // Location of the service
                    dataType: 'jsonp', //Expected data format from server
                    success: function (data) {//On Successfull service call
                        ServiceSucceeded(data);
                    },
                    error: function () { ServiceFailed(Data); } // When Service call fails
                });

的Web.config

  <system.serviceModel>
    <services>
      <service name="FIN.Services.Service1" behaviorConfiguration="DefaultBehavior">
        <endpoint address="http://localhost:61057/service1.svc" binding="webHttpBinding" contract="FIN.Services.IService1" behaviorConfiguration="AjaxBehavior">
          <identity>
            <dns value="locahost"/>
          </identity>
        </endpoint>
        <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex"/>
      </service>
    </services>
    <bindings>
      <webHttpBinding>
        <binding name="webBinding">
          <security mode="None">
          </security>
        </binding>
      </webHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="DefaultBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="AjaxBehavior">
          <enableWebScript/>
        </behavior>

      </endpointBehaviors>

    </behaviors>
  </system.serviceModel>

服务接口:

[WebInvoke(ResponseFormat = WebMessageFormat.Json, Method = "GET", BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json)]
        [OperationContract]
        string GetCustomer();

2 个答案:

答案 0 :(得分:0)

如果您不需要参数,请在您的ajax调用中添加以下内容。

数据:“{}”,

答案 1 :(得分:0)

您正在使用 jsonp ,表示您要调用跨域服务。 对于跨域服务,您的网址应如下所示

<强>的http://本地主机:?61057 / Service1.svc / GETCUSTOMER回调=

并且您还必须在web.config中进行一些更改

查看以下链接以获取完整示例

Calling cross domain service in wcf