WebApi經常遇到的一個問題,就是跨域,如何解決跨域,我還記得幾年前為了解決這個問題,需要修改配置文件,還需要在Js中設置某些參數,但是現在只需要在NuGet中引入一程序包就可以完全解決這個問題
這個包的名字叫做Microsoft.AspNet.WebApi.Cors
安裝完程序包之后,需要在(在App_Start里面的WebApiConfig.cs)添加如下配置
config.EnableCors();一定要添加這個,才能使用EnableCorsAttribute,否則,在Contoler或者Action上面添加這個特性無效
如果需要在某個Controler或者action執行跨域,其它的不執行跨域,只需要添加特性[EnableCors(origins: "*", headers: "*", methods: "*")]即可
origins:表示的是可以訪問當前接口的域名或者IP
例如 origins: "http://localhost:8081/"
methods:表示可以請求當前接口的方法
例如 methods: "GET,POST,PUT,DELETE")
headers:自定義的頭部
如果某個Action不要執行跨域,則添加DisableCors特性
如果要配置全局的跨域,則在App_Start里面的WebApiConfig.cs添加Config.EnableCors(new EnableCorsAttribute("*","*","*"));
