none
Service WCF COMPATIBLE Ajax + IIS 8.5 + Win 2012 R2 RRS feed

  • Question

  • Bonjour,

    J'ai développé un service web sous Visual Studio 2013 compatible Ajax que j'appelle depuis un page html à l'aide du code suivant :
        <script>
        $(document).ready(function () {
            $("#submit").click(function () {
                var email = $("#email").val();
                $("#returnmessage").empty(); // To empty previous error/success message.
                if (email == '') {
                    alert("Please Fill your email");
                } else {
                    if (validateEmail(email)) {
                        var params = {};
                        params.courriel = email;
                        //alert(JSON.stringify(params));
                        $.ajax({
                            type: 'POST',
                            url: "http://localhost:62253/JulienAjaxSvc.svc/Add",
                            data: JSON.stringify(params),
                            contentType: 'application/json; charset=utf-8',
                            dataType: "json",
                            processData: true,
                            success: function (response, status, xhr) {
                                alert('success: ' + response);
                            },
                            error: function (xhr, status, error) {
                                alert("Error\n-----\n" + xhr.status + '\n' + xhr.responseText);
                            },
                            complete: function (jqXHR, status) {
                                alert('Status: ' + status + '\njqXHR: ' + JSON.stringify(jqXHR));
                            }
                        });
                    }
                    else {
                        alert('Votre adresse Mail est incorrecte.')
                    }
                }
            });
            function validateEmail($email) {
                var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
                return emailReg.test($email);
            }
        });
        </script>

    Sous Visual Studio, le service fonctionne normalement.
    Quand je publie le service sur un serveur distant Win 2012 R2, il renvoie systématiquement "error" et un texte réponse vide.

    Les traces sont :
    <TraceData>
    <DataItem>
    <MessageLogTraceRecord Time="2017-04-25T13:20:24.7276114+02:00" Source="ServiceLevelReceiveRequest" Type="System.ServiceModel.Channels.NullMessage" xmlns="http://schemas.microsoft.com/2004/06/ServiceModel/Management/MessageTrace">
    <HttpRequest>
    <Method>OPTIONS</Method>
    <QueryString></QueryString>
    <WebHeaders>
    <Cache-Control>no-cache</Cache-Control>
    <Connection>Keep-Alive</Connection>
    <Content-Length>0</Content-Length>
    <Accept>*/*</Accept>
    <Accept-Encoding>gzip, deflate</Accept-Encoding>
    <Host>combogagnant.fr</Host>
    <User-Agent>Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko</User-Agent>
    <Origin>http://localhost:49437</Origin>
    <Access-Control-Request-Method>POST</Access-Control-Request-Method>
    <Access-Control-Request-Headers>content-type, accept</Access-Control-Request-Headers>
    <DNT>1</DNT>
    </WebHeaders>
    </HttpRequest>
    </MessageLogTraceRecord>
    </DataItem>
    </TraceData>

    La balise <Content-Length>0</Content-Length> signale un message de longueur nulle alors que lors des tests dans VS, j'ai la chose suivante :
    <root type="object" xmlns="">
    <courriel type="string">TITI@toto.fr</courriel>
    </root>

    IIS possède le type MIME .Json et le mappage de gestionnaires JSON est activé

    Quelqu'un peut-il m'aider ?

    Par avance merci de votre aide

    mardi 25 avril 2017 12:53