【发布时间】:2015-02-05 11:00:02
【问题描述】:
我有一个 MVC 控制器(不是 api 控制器)[HttpPost] 方法 public async Task<string> PostDocument() 我正在从客户端进行 ajax 调用。该方法正在对[HttpPost] 方法PostDocument(DocRepoViewModel docRepo) 进行另一个API 调用。以下是我的代码:
public async Task<string> PostAdminUploadData()
{
HttpResponseMessage response = null;
//set the parameter docRepo (a complex object)
try {
using (var client = new HttpClient())
{
string uri = documentRepositoryApiUrl + Constants.PostDoc;
client.BaseAddress = new Uri(documentRepositoryApiUrl);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
response = await client.PostAsJsonAsync(Constants.PostDoc, docRepo); //docRepo parameter for API method
}
}
catch (Exception ex){}
return (await response.Content.ReadAsAsync<string>());
}
现在在上面的代码response = await client.PostAsJsonAsync(Constants.PostDoc, docRepo); 代码片段返回success 响应变量(因为它做我所期望的)但是当上面的方法响应时,响应总是在我的ajax 下面的ajax 中被error: 捕获:
$.ajax({
url: url,
type: 'Post',
data: data,
cache: false,
dataType: 'json',
async: true,
contentType: false,
processData: false,
success: function (data) {
alert("pass");
},
error: function (data) {
alert("field"); //always failed
}
});
在 c# 的任何地方都没有抛出异常。请帮我解决问题
【问题讨论】:
-
检查控制台是否有错误,并更改
error处理程序以接受传递给它的参数,从而为您提供有关错误的具体详细信息。
标签: c# jquery ajax async-await