客户端通过ajax调用服务端WebApi。WebApi通过使用EnableCorsAttribute来支持跨域资源共享。但是Api只有一个post请求的Action方法是可以访问的,有两个post请求的方法就提示无法没有设置Access-Control-Allow-Orign。如图:
直接将其特性添加到控制器不就完了吗。
[EnableCors(origins: "*", headers: "*", methods: "*")]
我试过了,不可以的。两个方法就是没用。
@jacky_liu: 那你就在全局中进行注册。
@Recluse_Xpy: 我试过了,在Web.Config里面配置,但是会出现下面的Http的405错误。保留一个Action方法就不会出错,可以正常访问。
@jacky_liu: 我是说在Web API中的路由配置文件中注册,而不是Web Config!
@Recluse_Xpy: 请问怎样注册?
@jacky_liu:
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
遇到405错误的话,可以尝试在Web.config中添加如下配置。
<system.webServer> <modules> <remove name="WebDAVModule" /> </modules> <handlers> <remove name="WebDAV" /> </handlers> </system.webServer>