Ajax with WCF call returns 404 Error
<p>I would like to call a WCF service with an Ajax call but it returns me a 404 Error Not found error</p>

<p>The url is accessible through the browser and the port 1506 is open</p>

<p>This is my Ajax call :
I would like to use POST type</p>

<pre><code>$.ajax(
    {
       contentType: "application/json; charset=utf-8",
       dataType: "json",
       url: "http://192.168.80.18:1506/Service1.svc/GetData",
       type: 'POST',
       success: function (data, status, xhr)
       {
           alert('Success: '+data);
       },                        
       error: function(x, e)
       {
           if (x.status == 0) {
                    alert('You are offline!!\n Please Check Your Network.');
                } else if (x.status == 404) {
                    // Here is the problem
                    alert('Requested URL not found.');
                } else if (x.status == 500) {
                    alert('Internal Server Error.');
                } else if (e == 'parsererror') {
                    alert('Error.\nParsing JSON Request failed.');
                } else if (e == 'timeout') {
                    alert('Request Time out.');
                } else {
                    alert('Unknow Error.\n' + x.responseText);
                }
       }
    });
</code></pre>

<p><strong>WCF side</strong></p>

<p>IService1.cs
Here, I added, the POST method
    [ServiceContract]
    public interface IService1
    {</p>

<pre><code>    [OperationContract]
    [WebInvoke(Method= "POST", ResponseFormat= WebMessageFormat.Json)]
    string GetData();

    [OperationContract]
    CompositeType GetDataUsingDataContract(CompositeType composite);

    // TODO: ajoutez vos opérations de service ici
}
</code></pre>

<p>Service1.svc</p>

<pre><code>public class Service1 : IService1
{
    public string GetData()
    {
        return "Hello world!";
    }
}
</code></pre>

<p>Web.config</p>

<pre><code>    &lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;configuration&gt;

  &lt;appSettings&gt;
    &lt;add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /&gt;
  &lt;/appSettings&gt;
  &lt;system.web&gt;
    &lt;compilation debug="true" targetFramework="4.5" /&gt;
    &lt;httpRuntime targetFramework="4.5"/&gt;
  &lt;/system.web&gt;
  &lt;system.serviceModel&gt;
    &lt;behaviors&gt;
      &lt;serviceBehaviors&gt;
        &lt;behavior&gt;
          &lt;!-- Pour éviter la divulgation d'informations de métadonnées, définissez les valeurs ci-dessous sur false avant le déploiement --&gt;
          &lt;serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/&gt;
          &lt;!-- Pour recevoir les détails de l'exception dans les erreurs à des fins de débogage, définissez la valeur ci-dessous sur true. Pour éviter la divulgation d'informations d'exception, définissez-la sur false avant le déploiement --&gt;
          &lt;serviceDebug includeExceptionDetailInFaults="false"/&gt;
        &lt;/behavior&gt;
      &lt;/serviceBehaviors&gt;
    &lt;/behaviors&gt;
    &lt;services&gt;
      &lt;service name="WcfService1.Service1"&gt;
        &lt;endpoint address="Service1.svc"
                  binding="basicHttpBinding"
                  contract="WcfService1.IService1" /&gt;
      &lt;/service&gt;
    &lt;/services&gt;
    &lt;protocolMapping&gt;
        &lt;add binding="basicHttpsBinding" scheme="https" /&gt;
    &lt;/protocolMapping&gt;    
    &lt;serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /&gt;
  &lt;/system.serviceModel&gt;
  &lt;system.webServer&gt;
    &lt;modules runAllManagedModulesForAllRequests="true"/&gt;
    &lt;!--
        Pour parcourir le répertoire racine de l'application Web lors du débogage, définissez la valeur ci-dessous sur true.
        Définissez-la sur false avant le déploiement pour ne pas divulguer d'informations du dossier de l'application Web.
      --&gt;
    &lt;directoryBrowse enabled="true"/&gt;
  &lt;/system.webServer&gt;
&lt;/configuration&gt;
</code></pre>