Browser security prevents a web page from making AJAX requests to another domain. This restriction is called the same-origin policy,
and prevents a malicious site from reading sentitive data from another
site. However, sometimes you might want to let other sites call your web
API.
Enable CORS
Now let's enable CORS in the WebService app. First, add the CORS NuGet package. In Visual Studio, from the Tools menu, select Library Package Manager, then select Package Manager Console. In the Package Manager Console window, type the following command:
PowerShell
Install-Package Microsoft.AspNet.WebApi.Cors
This
command installs the latest package and updates all dependencies,
including the core Web API libraries. User the -Version flag to target a
specific version. The CORS package requires Web API 2.0 or later.
Open the file App_Start/WebApiConfig.cs. Add the following code to the
WebApiConfig.Register method.
C#
using System.Web.Http;
namespace WebService
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// New code
config.EnableCors();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
}
Next, add the [EnableCors] attribute to the
TestController
class:
C#
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Cors;
namespace WebService.Controllers
{
[EnableCors(origins: "http://mywebclient.azurewebsites.net", headers: "*", methods: "*")]
public class TestController : ApiController
{
// Controller methods not shown...
}
}
No comments:
Post a Comment