2017-07-16 16 views
-1

私はangularjsとc#を使用してデータベースからデータを取得しようとしています。 データが正常で、tasks.aspx.cs内のがjsonを取得していますが、console.log($ scope.data)はhtmlコードを出力します。

Angularjs:

<script> 
      var app = angular.module('app', []) 
       .controller('mainController', 
        function ($scope, $http,$timeout) { 
         angular.element(document) 
          .ready(function() { 
           $http.get('../tasks.aspx?tp=getInitData') 
            .then(
             function (d) { 
              if (d.data == "error" || d.data == "") { 
               // 
              } else { 
               $scope.data = d.data; 
               console.log($scope.data); 
              } 
             }, 
             function (d) { 
              // 
             }); 
          }); 

         $scope.msg = { 
          IsError: false, 
          Text: "" 
         } 
<script> 

Tasks.aspx.cs:応答で "appliation.json" として

using Newtonsoft.Json.Linq; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using Newtonsoft.Json; 

    public partial class Tasks : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (Request["tp"] == null) Response.End(); 
      var tp = Request["tp"] as string; 
      var postData = new System.IO.StreamReader(Request.InputStream).ReadToEnd(); 
      dynamic obj = postData == "" ? null : JObject.Parse(postData); 
      //int id; 
      switch (tp) 
      { 
       case "ping": 
        Response.Write("ok"); 
        break; 
       case "getInitData": 
        String s = Utils.GetData(); 
        Response.Write(Utils.GetData()); 
        break; 
      } 
     } 
    } 
+0

私はエラーがあり、400または401または500(または何か)のHTML応答を得ていると思います。データを見て、実際にHTMLを読んでください。また、サービスをデバッグします。 – Crowcoder

+0

'console.log(d);'は何を表示しますか? – mjwills

答えて

1

設定contentTypeのあなたのための

Response.Clear(); 
Response.ContentType = "application/json; charset=utf-8"; 
Response.Write(JsonConvert.SerializeObject(Utils.GetData())); 
Response.End(); 
+0

Angular js($ http.get)はデフォルトで 'application/json'ヘッダを使います。 – Crowcoder

0

感謝答えは、私が持っていたRsponse.redirect Tasks.aspx.csの一番下には気付かれていなかったので、今はすべてOKです。 もう一度ありがとうございます。

関連する問題