Я сталкиваюсь с проблемой, связанной с CORS, когда пытаюсь подключить свое приложение angular2 и приложение asp.net webapi.
Ошибка: -
register: 1 Доступ к XMLHttpRequest в «http://localhost:49457/api/UserDetails' от источника» http://localhost:4200' заблокирован политикой CORS: заголовок «Access-Control-Allow-Origin» содержит несколько значений «http://localhost:4200, http://localhost:4200', но разрешен только один.
Вот мой код для подключения для вызова URL-адреса asp.net webapi через мое приложение angular2: -
User.service.ts
GetUser(userobj:user):Observable<User>
{
return this.http.get<User>(`http://localhost:49457/api/UserDetails`,{responseType:"text"})
.subscribe(
function(response)
{
console.log("user details retreived successfully");
},
function(error)
{
console.log(error);
});
}
Это мой код для asp.net webapi,
public class UserDetailsController : ApiController
{
private sampledbEntities dbentity = new sampledbEntities();
// GET api/<controller>
public IQueryable<Userdetail> GetUserdetails()
{
return dbentity.userdetails;
}
}
На самом деле, когда я запускаю свой сервер asp.netwebapi, он корректно получает данные через браузер. А также я включил
CORS в webapiconfig.cs,
void Register(HttpConfiguration config)
{
var corsAttr = new EnableCorsAttribute("http://localhost:4200", "*", "*");
config.EnableCors(corsAttr);
}
в web.config.cs,
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="http://localhost:4200" />
<add name="Access-Control-Allow-Headers" value="Origin, Content-Type, X-Auth-Token" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
После включения CORS в Webapiconfig.cs и web.config я также сталкиваюсь с той же ошибкой.
Пожалуйста, уточните, как я могу выйти из этой ошибки,