【问题标题】:Jquery (ajax request) to WCF. WCF getting not initialized data parametersJquery(ajax 请求)到 WCF。 WCF 获取未初始化的数据参数
【发布时间】:2012-06-04 09:24:08
【问题描述】:

您好,我有下一个 WCF 服务。

[OperationContract]     
[WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
//[WebInvoke(UriTemplate = "GetStores?dataViewID={dataViewID}&filter={filter}&extent={extent}", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json,)]
string GetStores(int dataViewID, string filter, MapExtent extent);

[DataContract]
public class MapExtent
{
    [DataMember]
    public double XMax { get; set; }

    [DataMember]
    public double XMin { get; set; }

    [DataMember]
    public double YMax { get; set; }

    [DataMember]
    public double YMin { get; set; }
}

jQuery 部分是下一个

//var mapextend = { XMax: 1.0, XMin: 1.0, YMax: 10.5, YMin: 4.5 };
var paramData = {"dataViewID":12, "filter":"", extent : {"XMax": 1.0, "XMin": 1.0, "YMax": 10.5, "YMin": 4.5} };
$.ajax({
    url: serviceurl + 'GetStores',
    type: 'GET',
    contentType: 'application/json',
    data: paramData,
    success: function (result) {
        alert(result);                    
        },
    error: function (xhr) {
        alert(xhr);
        }
    });

配置看起来像它

<system.serviceModel>

    <bindings>
      <webHttpBinding>
         <binding name="webBinding"></binding>
      </webHttpBinding>           
    </bindings>

    <behaviors>

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

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

    </behaviors>

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

    <services>           
      <service behaviorConfiguration="ServiceBehavior" name="MyService">
        <endpoint address="" binding="webHttpBinding"  bindingConfiguration="webBinding" contract="IMyService" behaviorConfiguration="jsonBehavior" />        
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
  </system.serviceModel>

当 ajax 调用此服务时,它会调用但所有参数都没有得到任何值。我做错了什么?

【问题讨论】:

    标签: jquery asp.net wcf


    【解决方案1】:

    试试这个:

    jQuery 部分:

    //var mapextend = { XMax: 1.0, XMin: 1.0, YMax: 10.5, YMin: 4.5 };
            var paramData = {"dataViewID":12, "filter":"", extent : {"XMax": 1.0, "XMin": 1.0, "YMax": 10.5, "YMin": 4.5} };
            $.ajax({
                url: serviceurl + 'GetStores',
                type: 'POST',
                contentType: "application/json",
                dataType: "json",
                data: JSON.stringify(paramData),
                success: function (result) {
                    alert(result);                    
                },
                error: function (xhr) {
                    alert(xhr);
                }
            });
    

    【讨论】:

    • 我对 dataType: "json" 感到厌烦
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    相关资源
    最近更新 更多