2016-07-09 7 views
0

Ich habe einen AJAX POST-Anruf an meinen Dienst wcf. Es funktionierte gut, als ich eine Zeichenfolge (Json-Payload) zurückgab, aber sobald ich ein "HttpResponseMessage" -Objekt zurückgab, begann es, mir den ERR_CONNECTION_RESET zu geben. Die gleiche Nutzlast wurde zurückgegeben, mit der Ausnahme, dass ich jetzt die richtigen Antworten wie 200 und 404 zurückgeben möchte. Hier

ist der Ajax-Aufruf:

function Login (cred) { 
$.ajax({ 
    type: "POST", 
    url: ServerConfig.Server + ServerConfig.Service + "/login/", 
    // The key needs to match your method's input parameter (case-sensitive). 
    data: JSON.stringify(cred), 
    contentType: "application/json", 
    dataType: "json", 
    crossDomain: true, 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader("Access-Control-Allow-Origin", "*"); 
    },   
    error: loginFailed, 
    success: loginSuccess 
}); 
} 

und hier ist die meine Wcf-Methode:

public HttpResponseMessage Login(string username, string password) 
{ 
     repository = new DbRepository(); 
     HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.BadRequest); 
     var res = string.Empty; 

     var user = repository.Login(username, password); 

     if (null != user) 
     { 
      res = JsonConvert.SerializeObject(user); 
      response = new HttpResponseMessage(HttpStatusCode.OK) 
      { 
       Content = new StringContent(res) 
      }; 
     } 
     else 
     { 
      return response; 
     }    

     return response; 
} 

Ich habe bestätigt, dass es wieder zu bespannen durch Umschalten funktioniert wie erwartet. Kann jemand etwas beleuchten, was passieren könnte?

Danke.

EDIT: Hier ist, was meine 'credibility' Objekt aussieht und wie es erstellt wurde:

$('.signin').on("click", function() { 
      var user = $('.username').val(); 
      var pass = $('.password').val(); 
      var cred = { "username": user, "password": pass }; 
      Login(cred); 
     }); 

Die JSON.stringify (CRED) sieht wie folgt aus:

{"username":"Test1234","password":"TestPassword!"} 
+0

Können Sie teilen, wie JSON.stringify (cred) aussieht? –

+0

@OzanGanceler - Ich habe meine Frage mit diesen Informationen aktualisiert. Danke für die Zeit. – DeepToot

+1

Haben Sie versucht, JSON.stringify zu entfernen? Setzen Sie Daten direkt auf das Cred-Objekt –

Antwort

-1

bitte setzen diese Code in der Datei web.config.

` <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 
<standardEndpoints> 
<webScriptEndpoint> 
<standardEndpoint name="" crossDomainScriptAccessEnabled="true" /> 
</webScriptEndpoint> 
</standardEndpoints>`