Javascript 角度发布到ASP.NET核心Web API返回失败
这是我的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 *
// 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的一些基本教程