- تنظیمات IoC Container آن (برنامهای که آزمایش شده و کار میکند)
در اینجا هست. کدهای خودتان را با آن مقایسه کنید.
- آدرسی که کار میکند، یعنی جزو مسیریابی سیستم ثبت شدهاست.
- برای فعال سازی CORS این مراحل باید طی شوند:
در فایل WebApiConfig.cs
، در ابتدای متد Register این کدها باید اضافه شوند: var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
config.MessageHandlers.Add(new PreflightRequestsHandler());
در گردش کاری CORS، کلاینت قبل از ارسال درخواستهای delete، put و post، ابتدا درخواستی از نوع option را ارسال میکند تا وضعیت دسترسی را بررسی کند:
public class PreflightRequestsHandler : DelegatingHandler
{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
if (request.Headers.Contains("Origin") && request.Method.Method == "OPTIONS")
{
var response = new HttpResponseMessage {StatusCode = HttpStatusCode.OK};
response.Headers.Add("Access-Control-Allow-Origin", "*");
response.Headers.Add("Access-Control-Allow-Headers", "Origin, Content-Type, Accept, Authorization");
response.Headers.Add("Access-Control-Allow-Methods", "*");
var tsc = new TaskCompletionSource<HttpResponseMessage>();
tsc.SetResult(response);
return tsc.Task;
}
return base.SendAsync(request, cancellationToken);
}
}
به علاوه در ابتدای کدهای سمت کلاینت هم این سطر باید اضافه شود:
jQuery.support.cors = true;