Bonjour,

Je tente d'appler un Service WCF avec JQUery dans une page ASP.NET.

Le service WCF fonctionne parfaitement quand je le référence dans une application locale que ce soit une référence au projet de service WCF dans la solution ou bien une référence au service publié sur IIS.

En revanche, pour ce qui de l'appel par JQUery, là, il y a un sérieux os.

Voici le code d'appel javascript

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
$.ajax({
            type: "POST",
            url: "http://localhost/ServiceProjet/Service1.svc/GetData",            
            data: {"value":"12"},
	    //data: '{"value":"12"}', ne donne pas de meilleurs résultats            
            contentType: "application/json; charset=utf-8",
            dataType: "json",            
            success: function(msg) {              
                eval(msg.GetDataResult);
            },
            error: function(xhr, status, error) {
                if (xhr.responseText != "") {
                    var err = eval("(" + xhr.responseText + ")");
                    alert(err.Message);
                }
            }
        });
le code de la définition de l'opération dans l'interface du service
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
[OperationContract]
[WebInvoke(Method = "POST",  BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]  
string GetData(string value);
la partie intéressante du web.config du site
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="MonServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="MonServiceBehavior">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="MonServiceBehavior" name="WcfService.Service1">
        <endpoint address="" binding="webHttpBinding" contract="WcfService.IService1" behaviorConfiguration="MonServiceBehavior"/>
      </service>
    </services>
 
  </system.serviceModel>
J'arrive a utiliser des services qui sont DANS le site (App_Code) mais c'est tout.

J'ai regardé pas mal de site mais je sèche.

Ah oui, l'erreur c'est :
Cannot process the message because the content type 'application/json; charset=utf-8' was not the expected type 'application/soap+xml; charset=utf-8'.
Merci de votre aide.