这可能是由于CORS(跨域资源共享)问题引起的。为了解决这个问题,您可以在.NET后端中添加以下代码来允许跨域资源共享:
在WebApiConfig.cs文件中,加入以下代码:
config.EnableCors(new EnableCorsAttribute("", "", "*"));
此代码允许任何来源,任何头部和任何方法访问您的Web API。
如果您使用的是ASP.NET Core,您可以添加以下代码:
services.AddCors(options => { options.AddPolicy("AllowAll", builder => { builder.AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader(); }); });
并在Configure方法中添加以下代码:
app.UseCors("AllowAll");
这将允许任何来源,任何方法和任何标头访问您的ASP.NET Core应用程序。
此外,在您的AngularJS代码中,您应该在请求前设置withCredentials属性:
$http({ method: 'POST', url: '/your-api-url', withCredentials: true, headers: { 'Content-Type': 'application/json' }, data: { // request data } }).then(function successCallback(response) { // success callback }, function errorCallback(response) { // error callback });
这确保了在发送请求时,浏览器将在请求头中发送Cookie,这样您就可以保持用户会话。
请注意,使用“*”可以将您的应用程序暴露给潜在的攻击者,因此请尽可能限制来源。