У меня есть веб-API в asp.net 4.5. Я установил пакет nuget для cors и внес соответствующие изменения в код.
in WebApiConfig.cs
:
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
config.EnableCors();
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
В контроллере
[EnableCors(origins: "http://localhost:56241/api/loancopy/3219795539", headers: "*", methods: "*")]
[RoutePrefix("api/loancopy")]
public class MainController : ApiController
{
[HttpPost]
[Route("{loannumber}")]
public HttpResponseMessage PostLoanCopy([FromUri]string loanNumber, [FromBody] LoanDto LoanDto)
{
return new HttpResponseMessage();
}
}
Это мой почтовый запрос на стороне клиента в angular2
export class HeroService {
private heroesUrl = 'http://localhost:56241/api/loancopy/3219795539';
private body = 'body'
constructor(private http: Http) { }
addHero(name: Loan): Observable<Loan> {
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.post(this.heroesUrl, JSON.stringify(Loan), options)
.map(this.extractData)
.catch(this.handleError);
}
Мой клиент говорит, что ответ на предварительную проверку имеет недопустимый код состояния HTTP 500
origins: "http://localhost:56241/
для источников и маршрута как[Route("{loanNumber}")]
- person Developer   schedule 28.10.2016OPTIONS
запросы. - person Günter Zöchbauer   schedule 28.10.2016