Click here to Skip to main content
15,891,743 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi,

I have lot tried post call to wcf service but its not working,but get call is working fine.here's code:-

WCF IService->

C#
[ServiceContract]
    public interface IService
    {
        [OperationContract]
        void DoWork();

        [OperationContract]
        [WebInvoke(Method = "GET", UriTemplate = "/TestMethod", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        string TestMethod();

        [OperationContract]
        [WebInvoke(Method = "POST", UriTemplate = "/TestMethod_FORPOST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        string TestMethod_FORPOST(string param1);
    }



Wcf-Service.svc.cs:-
C#
[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]
   [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
   public class Service : IService
   {
       public void DoWork()
       {
       }

       public string TestMethod()
       {
           return "Success";
       }

       public string TestMethod_FORPOST(string param1)
       {
           return "SuccessFullyPosted";
       }



Web Confi:- <!--CustomSettingsForWCF-->
<system.servicemodel>

  <bindings>
    <webhttpbinding>
      <binding name="webBinding" maxreceivedmessagesize="2147483647" crossdomainscriptaccessenabled="true">
               maxBufferSize="2147483647" maxBufferPoolSize="2147483647"
               transferMode="Streamed">
        <readerquotas maxstringcontentlength="2147483647" maxarraylength="2147483647" />

        <!--<security mode="Transport">
          <transport>
            <extendedprotectionpolicy policyenforcement="Never" />
          </transport>
        </security>-->
      </binding>
    </webhttpbinding>
  </bindings>

  <services>
    <service behaviorconfiguration="Service" name="WCF_TEST_APPLICATION_WITH_AJAXCALL.Service">
      <endpoint address="" behaviorconfiguration="webEndpoint">
                binding="webHttpBinding" bindingConfiguration="webBinding" name="web"
                bindingNamespace="" contract="WCF_TEST_APPLICATION_WITH_AJAXCALL.IService" />
    </endpoint></service>
  </services>

  <behaviors>
    <endpointbehaviors>
      <behavior name="webEndpoint">
        <webhttp helpenabled="true" defaultbodystyle="Wrapped" defaultoutgoingresponseformat="Json" />
      </behavior>
    </endpointbehaviors>
    <servicebehaviors>
      <behavior name="Service">
        <servicemetadata httpgetenabled="true" />
        <servicedebug includeexceptiondetailinfaults="false" />
        <!--<userequestheadersformetadataaddress />-->
      </behavior>
    </servicebehaviors>
  </behaviors>

  <servicehostingenvironment aspnetcompatibilityenabled="true" multiplesitebindingsenabled="true" />
</system.servicemodel>
<system.webserver>
  <modules runallmanagedmodulesforallrequests="true" />
</system.webserver>


Another application throughout Call method:-
JavaScript
var  WCFurl = "http://localhost:49212/Service.svc/TestMethod_FORPOST";
 var datar = { param1: "abc" };
 alert("SecondCall");
 $.ajax({
     type: "POST",
     //contentType: "application/json; charset=utf-8",
     url: WCFurl,
     data: JSON.stringify(datar),
     dataType: "json",
     beforeSend: function (xhr) {
         xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
     },
     success: function (msg) {
         alert("success");
     },
     error: function (xhr, status, error) {
         alert(xhr.status + " " + status + " " + error);
     },
     complete: function (data) {
         alert(JSON.stringify(data));
     }
 });

above code is working fine for get call but not for post call, please give me suggestion, how can i do with post call?
-Sanjiv
Posted
Updated 3-Oct-12 22:25pm
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month


CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900