簡體   English   中英

如何從angular js中的HttpResponse中提取JSON數據?

[英]How to extract the JSON data from HttpResponse in angular js?

我正在如下Web API中所示發送JSON Http響應,響應中存在JSON數據。

HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
            var LoginDetailsResponse = new LoginDetails { LoginToken = "Token" , LoginDescription = "Desc" };
            response.Content =  
                new ObjectContent<LoginDetails>(LoginDetailsResponse,
                            new JsonMediaTypeFormatter(), new MediaTypeWithQualityHeaderValue("application/json"));
            return response;

並且以JSON格式發送的對象是:

public class LoginDetails
    {
        public string LoginToken { get; set; }
        public string LoginDescription { get; set; }
    }

以下是我用來發送請求並提取JSON內容的有角度的js代碼:

 var Submit = function() { var httpResponseRef = $http({ url: 'http://wycvwetebx056.com:81/', method: "GET" }); httpResponseRef.then(successloginCallBackRef, errorloginCallBackRef, notifyCallbackRef); }; // when it is a success it call's successloginCallBackRef function var successloginCallBackRef = function(httpLoginResponseMessage) { var status = httpLoginResponseMessage.status; var response = httpLoginResponseMessage.data; // returns everything as a string type. }; 

但是httpLoginResponseMessage.data沒有返回預期的數據,它似乎包含以下內容。

"StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.JsonContent[LoginDetails.LoginDetailsResponse], Headers:
{
  Content-Type: application/json; charset=utf-8
}"

我可以看到我具有json內容,但是我不確定在使用angular js時如何提取該內容。

為什么不依靠內置方法來進行內容協商。

public HttpResponseMessage Login()
{
    var s = new LoginDetails { LoginToken = "read from somehere"};
    return Request.CreateResponse(HttpStatusCode.OK, s);               
}

這將為您的角度http調用返回一個JSON結構。 您可以在成功回調中讀取data屬性,它將是一個js對象,您可以在其中訪問LoginToken屬性。

var successloginCallBackRef = function(response) {

  var status = response.status;
  var d = response.data; 
  console.log(d.LoginToken);
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM