2016-07-09 3 views
0

私のwcfサービスにajax POSTコールがあります。私は文字列(jsonペイロード)を返すときにうまくいきましたが、 'HttpResponseMessage'オブジェクトを返すように切り替えるとすぐに、私にERR_CONNECTION_RESETを与え始めました。同じペイロードが返されましたが、私は200と404のような適切な応答を返したいと思います。ここで

は、AJAX呼び出しです:

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 
}); 
} 

、ここでは私のWCFの方法である:

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; 
} 

私は期待通りの文字列に戻って切り替えることによって動作することを確認しています。誰かが何が起こっているかもしれないかについていくつかの光を当てることができますか?

ありがとうございました。

編集:ここに私の 'クレド' オブジェクトがどのようなものか、それが作成された方法である。

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

JSON.stringify(CRED)は次のようになります。

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

JSON.stringify(cred)の仕組みを共有できますか? –

+0

@OzanGunceler - この情報で質問を更新しました。ありがとうございました。 – DeepToot

+1

JSON.stringifyを削除してみましたか?データを直接credオブジェクトに設定してください –

答えて

-1

これを入れてくださいweb.configファイルのコード。

` <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 
<standardEndpoints> 
<webScriptEndpoint> 
<standardEndpoint name="" crossDomainScriptAccessEnabled="true" /> 
</webScriptEndpoint> 
</standardEndpoints>` 
関連する問題