Javascript $http.get返回html代码而不是JSON
我试图使用angularjs和c#从数据库中获取数据。 在我获取json的tasks.aspx.cs中写入Response.Write之前,数据是正常的,但是console.log($scope.data)打印html代码 Angularjs:Javascript $http.get返回html代码而不是JSON,javascript,c#,asp.net,angularjs,json,Javascript,C#,Asp.net,Angularjs,Json,我试图使用angularjs和c#从数据库中获取数据。 在我获取json的tasks.aspx.cs中写入Response.Write之前,数据是正常的,但是console.log($scope.data)打印html代码 Angularjs: <script> var app = angular.module('app', []) .controller('mainController',
<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>
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;
}
}
}
在响应中将contentType设置为“appliation.json”
Response.Clear();
Response.ContentType = "application/json; charset=utf-8";
Response.Write(JsonConvert.SerializeObject(Utils.GetData()));
Response.End();
感谢您的回答,我在Tasks.aspx.cs的底部有Rsponse.redirect,我没有注意到,所以现在一切都好了。
再次感谢。我认为有一个错误,您得到的html响应是400、401或500(或其他)。查看数据并实际读取HTML。还要调试您的服务默认情况下,code>show?Angular js($http.get)使用
application/json
头。