Javascript 角度发布到ASP.NET核心Web API返回失败

Javascript 角度发布到ASP.NET核心Web API返回失败,javascript,asp.net,angularjs,Javascript,Asp.net,Angularjs,这是我的web api代码 // POST api/Values [HttpPost] public async Task Post() { string user = new StreamReader(Request.Body).ReadToEnd(); var cmd = new SqlCommand( @"insert into Users select *

这是我的web api代码

 // POST api/Values
    [HttpPost]
    public async Task Post()
    {
        string user = new StreamReader(Request.Body).ReadToEnd();
        var cmd = new SqlCommand(
                @"insert into Users
                select *
                from OPENJSON(@user)
                WITH( Username, Password, Email, Nickname, IsActive, Activation)");
        cmd.Parameters.AddWithValue("user", user);
        await SqlCommand.ExecuteNonQuery(cmd);
    }
这是我的angular js代码

data = JSON.stringify({Username: user, Password: pwd, Nickname: user, IsActive: '1', Activation: '2u4bubdub32939342'}); 
        $http.post('http://localhost:7792/api/values', data)
        .success(function(data, status, headers, config) {
            alert("success");
        })
        .error(function(data, status, headers, config) {
            alert( "failure message: " + data + " " +status+ " " +headers+ " " +config);
        });
        } catch (e) { alert(e.message); }

当我运行它时,我会收到失败消息。在搜索我在startup.cs中添加到ConfigureServices(iSeries Collection services)中的web后,我已经在web apo中启用了COR

        services.AddCors(options =>
        {
            options.AddPolicy("CorsPolicy",
                builder => builder.AllowAnyOrigin()
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials());
        });
        app.UseCors("CorsPolicy");
我还在startup.cs中添加了Configure(IAApplicationBuilder应用程序,…)

        services.AddCors(options =>
        {
            options.AddPolicy("CorsPolicy",
                builder => builder.AllowAnyOrigin()
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials());
        });
        app.UseCors("CorsPolicy");

您的POST方法应该包含一个参数,即您通过Angular正确发送的用户模型。我希望这能对您有所帮助。

您使用的Angular版本是什么版本1,get请求有效。只有POST错误消息是什么?此外,您的注释似乎说url应该是api/todo,但您的代码正在调用api/values.o很抱歉,这是一个错误。我更新了codePOST 500(内部服务器错误)VM864注册:1 XMLHttpRequest无法加载。请求的资源上不存在“Access Control Allow Origin”标头。因此不允许对源“”进行访问。响应的HTTP状态代码为500。它现在实际工作了吗?您发布的API方法没有接收任何输入,这似乎…奇怪。不,它没有连接,但没有插入任何内容您的Post方法应该采用一个参数,即您通过Angular正确发送的用户模型。我希望这个示例可以帮助您:我仍然不明白。请遵循ASP.NET核心Web Api的一些基本教程