동일한 솔루션에 ASP.Net Core 및 Web API 프로젝트가 있습니다. Api 프로젝트에서 정의한 내 핵심 프로젝트에서 Get, Post, Put, Delete를 호출합니다. 확실히 CORS를 활성화해야합니다.요청 헤더 필드 x-ms-request-root-id는 프리 플라이트 응답에서 Access-Control-Allow-Headers로 허용되지 않습니다.
우는 소리는
$.ajax({
"url": "myApiUrl",
"type": "Get",
"data": {
//Here I'm passing a value
},
success: function (d) {
}
내가 시작 프로젝트로 모두 프로젝트를 설정하십시오 내 웹 API를 web.config 파일에 추가 코드,
<httpProtocol>
<customHeaders>
<!-- Enable Cross Domain AJAX calls -->
<clear />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type"/>
</customHeaders>
</httpProtocol>
그리고 핵심 프로젝트에서 내 Ajax 코드입니다 . 별일 아니다. Api 메서드를 호출하고 데이터를 반환합니다. 하지만 어떤 경우에는 아무 것도 반환하지 않습니다. 심지어 메소드가 데이터를 반환하더라도, 나는 내 질문에 언급 된 browser console
에 오류가 발생합니다. 나는 this one을 포함하여 많은 답변을 확인했는데, 모두 response header
에 access control
을 추가해야한다고 나와 있습니다. 어느 누구나 내가 정확히 어디에 추가해야하는지, 그리고 예상대로 작동 할 수 있도록 추가해야 할 부분을 알려줍니다.
코어도 마찬가지로 Asp.net MVC 프로젝트에서 확인했습니다.
참고 : 내 웹 프로젝트가 아닌 웹 API 프로젝트에 CORS를 추가했습니다. 모든 요청에 대해
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(o => o.AddPolicy("CrossPolicy", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
}));
// ...
}
을 :
웹 API 작업에서 권한 부여가 허용 되었습니까? –
아니요. 지금은 인증없이 모든 API 방법을 제공하고 있습니다. –
확인. CORS를 어떻게 사용했는지 보여 주실 수 있습니까? –