web api返回html而不是json

时间:2017-07-11 20:17:46

标签: angularjs asp.net-core asp.net-core-webapi

我已经创建了一个asp.net核心项目,在项目中我有一个angularjs应用程序和一个web api项目。当我通过邮递员登录时,angularjs应用程序加载我得到了我期望在json中的响应。但是当我在angularjs中尝试相同的时候,我会在html中得到响应。

我尝试了很多设置但无法正常工作。

尝试设置$ http服务标头和$ httpProvider标头,但无法在角度js中使用它。

我将postman中的内容类型设置为application / json并且它可以工作,所以不要认为它因为内容类型在角度js中是错误的。

Startup.cs文件:

    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);
    }

Angular 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网络通过开发者工具:

  

请求网址:http://localhost:5000/webapi/account/test3   请求方法:POST   状态代码:200 OK   远程地址:[:: 1]:5000   推荐人政策:no-referrer-when-downgrade   响应标题   查看源   内容类型:text / html的;字符集= utf-8的   日期:2017年7月11日星期二19:58:46 GMT   服务器:红隼   传输编码:分块   请求标题   查看源   接受:application / json,text / plain, /   Accept-Encoding:gzip,deflate,br   接受语言:EN-GB,EN-US; Q = 0.8,连接; Q = 0.6   连接:保持活跃   内容长度:61   内容类型:应用/ JSON;字符集= UTF-8   主持人:本地主机:5000   起源:http://localhost:5000   引用者:http://localhost:5000/login

0 个答案:

没有答案