Я создал веб-службу AMSX и работает правильно при обращении к URL-адресу:
public class ExpenseService : System.Web.Services.WebService
{
[WebMethod]
public void Get()
{
List<Expense> expenses = new List<Expense>();
expenses.Add(new Expense(1, "Netflix", "Netflix", 20.00, new DateTime()));
expenses.Add(new Expense(2, "Spotify", "Spotify", 14.90, new DateTime()));
JavaScriptSerializer js = new JavaScriptSerializer();
Context.Response.Write(js.Serialize(expenses));
}
}
Однако, когда я делаю GET с моего контроллера AngularJS через $ http:
var app = angular.module("app", ["ngRoute"]);
app.config(function ($routeProvider) {
$routeProvider.when("/home", {
templateUrl: "Pages/Home.html",
controller: "homeController"
})
});
app.controller("homeController", function ($http) {
var self = this;
$http.get("ExpenseService.asmx/Get")
.then(function (response) {
self.expenses = response.data;
})
});
Я получаю эту ошибку на консоли:
И если я нажму ссылку на сообщение об ошибке (подчеркнуто на изображении выше), я также получил сообщение об ошибке на странице:
Просто помните: я могу получить доступ к JSON при вводе URL вручную в браузере.
[System.Web.Script.Services.ScriptService]//add it and try again
public class ExpenseService : System.Web.Services.WebService