我的解决方案中有一个Web API 2项目,其中我使用的是令牌基本身份验证。现在必须从角度js使用Web API。为此,我有一个单独的项目,我使用$ http来使用Web API。但我无法访问资源。我在Web API项目中配置了CORS。任何人都可以知道如何消费它。 我正在请求来自http://localhost:54536的网络API。 使用以下代码注册用户:
this.register = function (userInfo) {
var resp = $http({
url: "http://localhost:64551/api/Account/Register",
method: "POST",
data: userInfo,
});
return resp;
};

web api控制器代码:
// POST api/Account/Register
[AllowAnonymous]
[Route("Register")]
public async Task<IHttpActionResult> Register(RegisterBindingModel model)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
IdentityUser user = new IdentityUser
{
UserName = model.UserName
};
IdentityResult result = await UserManager.CreateAsync(user, model.Password);
IHttpActionResult errorResult = GetErrorResult(result);
if (errorResult != null)
{
return errorResult;
}
return Ok();
}
我添加了用于启用CORS的Web配置设置。
<system.webServer>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="localhost:54536" />
<add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, PUT, DELETE" />
</customHeaders>
</httpProtocol>
我正在使用OWIN中间件来验证用户身份。 为了启用CORS,我在&#34; Startup&#34;中添加了以下代码:类
HttpConfiguration config = new HttpConfiguration();
ConfigureAuth(app);
WebApiConfig.Register(config);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app.UseWebApi(config);
我在注册页面上收到以下错误
XMLHttpRequest无法加载// localhost:64551 / api / Account / Register。 对预检请求的响应没有通过访问控制检查: &#39;访问控制允许来源&#39;标头包含多个值 &#39; // localhost:54536,// localhost:54536&#39;,但只允许一个。 起源&#39; // localhost:54536&#39;因此不允许访问。