$ http.get返回html代码而不是JSON

时间:2017-07-16 11:38:59

标签: javascript c# asp.net angularjs json

我正在尝试使用angularjs和c#从数据库中获取数据。 数据很好,直到tasks.aspx.cs中的 Response.Write ,我从中获取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:

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

2 个答案:

答案 0 :(得分:1)

在回复中将contentType设置为“appliation.json”

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

答案 1 :(得分:0)

感谢您的回答,我在Tasks.aspx.cs的底部有 Rsponse.redirect ,我没有注意到,所以现在一切正常。 再次感谢你。