Angularjs 返回html而不是json的web api
我创建了一个asp.net核心项目,在这个项目中我有一个angularjs应用程序和一个web api项目。当我通过postman登录时,angularjs应用程序将加载,我将得到json中预期的响应。但是当我在angularjs中尝试同样的方法时,我得到了html的响应 我尝试了很多设置,但无法使其正常工作 尝试设置$http服务标头和$httpProvider标头,但无法在js中使用 我将postman中的内容类型设置为application/json,它可以正常工作,所以我不认为它是正确的,因为在js中内容类型是错误的 Startup.cs文件:Angularjs 返回html而不是json的web api,angularjs,asp.net-core,asp.net-core-webapi,Angularjs,Asp.net Core,Asp.net Core Webapi,我创建了一个asp.net核心项目,在这个项目中我有一个angularjs应用程序和一个web api项目。当我通过postman登录时,angularjs应用程序将加载,我将得到json中预期的响应。但是当我在angularjs中尝试同样的方法时,我得到了html的响应 我尝试了很多设置,但无法使其正常工作 尝试设置$http服务标头和$httpProvider标头,但无法在js中使用 我将postman中的内容类型设置为application/json,它可以正常工作,所以我不认为它是正确的
public void ConfigureServices(IServiceCollection services)
{
services
.AddMvcCore()
.AddJsonFormatters();
// Add framework services.
services.AddMvc().AddJsonOptions(
options =>
options.SerializerSettings.ContractResolver = new
CamelCasePropertyNamesContractResolver()
);
web api中的控制器是:
[Route("test3")]
[HttpPost]
public JsonResult Test3([FromBody]LoginUserRequest model)
{
LoginUserResponse response = new LoginUserResponse();
response.validLogin = false;
response.Message = "failed" + model.Email;
return Json(response);
}
角js服务:
vm.getLogin = getLogin;
function getLogin(request) {
return $http.post('/webapi/account/test3',request,{
headers: { 'Content-Type': 'application/json; charset=utf-8'}
})
.then(getLoginComplete)
.catch(getLoginFailed);
}
function getLoginComplete(data, status, headers, config) {
return data.data;
}
function getLoginFailed(e) {
var newMessage = 'XHR Failed for login';
if (e.data && e.data.description) {
newMessage = newMessage + '\n' + e.data.description;
}
e.data.description = newMessage;
return {"error":true, "message":"Unable to login please try again later"};
}
通过开发者工具的Chrome网络:
请求URL:
申请方式:邮寄
状态代码:200 OK
远程地址:[::1]:5000
推荐人策略:降级时无推荐人
响应头
视图源
内容类型:text/html;字符集=utf-8
日期:2017年7月11日星期二19:58:46 GMT
服务员:红隼
传输编码:分块
请求头
视图源
接受:application/json、text/plain、/
接受编码:gzip,deflate,br
接受语言:英语GB,英语US;q=0.8,en;q=0.6
连接:保持活力
内容长度:61
内容类型:application/json;字符集=UTF-8
主机:本地主机:5000
来源:
推荐人:
请发布请求响应的正文(内容)。由于文件太大而无法粘贴,必须将其上载到托管站点。这是我在angular service getLoginCompleteIt中得到的主体响应。由于身份验证,您似乎从Test3重定向到了其他方法,因此这是由于发生了这种情况。当API路径错误或服务器配置有一些错误时,就会发生这种情况。你所做的是正确的那没什么问题