我正在尝试从 AngularJS 应用程序(使用 $http
)向构建在 ASP.NET WebApi 上的服务器发布字符串,但我在添加参数后立即收到 404。
客户端代码是这样的
$scope.add = function () {
// ...cut...
$http({ method: "POST", url: url, data: { fileString: "test string" }}).then(
function successCallback(response) {
$log.info(response.data);
}
);
}
服务器代码是
[HttpPost]
public IHttpActionResult UploadExcel(string fileString) {
// cut
}
我得到一个 404,但是如果我在服务器端删除参数它就可以工作,所以我可以使用这样的服务器端代码
[HttpPost]
public IHttpActionResult UploadExcel() {
// cut
}
怎么了?我应该以不同的方式传递数据吗?我尝试了不同的组合,但无法正常工作。
最佳答案
您想要做的是发送一个字符串,而不是像您现在使用 { fileString: "test string"}
那样发送一个 JSON 对象。当我想发送一个字符串时,我通常会像这样从 Angular 发送数据:
$http.post("/Search/QuickSearch?searchQuery="+ searchString);
我的 Controller 准备好接收这样的字符串:
[HttpPost]
public IHttpActionResult QuickSearch(string searchQuery)
{
// cut
}
如果我想发送一个 JSON 对象,我会告诉我的 Controller 它应该期待什么,就像这样:
[HttpPost]
public IHttpActionResult SaveActivity(ActivityEditForm form);
{
// cut
}
public class ActivityEditForm
{
public int? Id { get; set; }
[Required]
public string Title { get; set; }
public string Description { get; set; }
}
然后像这样从 Angular 发送我的 JSON:
$http.post("/Activity/SaveActivity", { form: activity });
关于javascript - 从 AngularJS 客户端发布到 ASP.NET WebApi 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34746535/