首页 新闻 会员 周边

WebApi支持CORS

0
悬赏园豆:10 [已解决问题] 解决于 2015-10-16 15:35

客户端通过ajax调用服务端WebApi。WebApi通过使用EnableCorsAttribute来支持跨域资源共享。但是Api只有一个post请求的Action方法是可以访问的,有两个post请求的方法就提示无法没有设置Access-Control-Allow-Orign。如图:

问题补充:

jacky_liu的主页 jacky_liu | 初学一级 | 园豆:169
提问于:2015-10-10 15:38
< >
分享
最佳答案
0

直接将其特性添加到控制器不就完了吗。

[EnableCors(origins: "*", headers: "*", methods: "*")]

收获园豆:10
Jeffcky | 老鸟四级 |园豆:2789 | 2015-10-10 15:46

我试过了,不可以的。两个方法就是没用。

jacky_liu | 园豆:169 (初学一级) | 2015-10-10 15:46

@jacky_liu: 那你就在全局中进行注册。

Jeffcky | 园豆:2789 (老鸟四级) | 2015-10-10 15:47

@Recluse_Xpy: 我试过了,在Web.Config里面配置,但是会出现下面的Http的405错误。保留一个Action方法就不会出错,可以正常访问。

jacky_liu | 园豆:169 (初学一级) | 2015-10-10 16:15

@jacky_liu: 我是说在Web API中的路由配置文件中注册,而不是Web  Config!

Jeffcky | 园豆:2789 (老鸟四级) | 2015-10-10 16:40

@Recluse_Xpy: 请问怎样注册?

jacky_liu | 园豆:169 (初学一级) | 2015-10-10 16:46

@jacky_liu: 

var cors = new EnableCorsAttribute("*", "*", "*");

config.EnableCors(cors);

Jeffcky | 园豆:2789 (老鸟四级) | 2015-10-10 17:59
其他回答(1)
0

遇到405错误的话,可以尝试在Web.config中添加如下配置。

<system.webServer>
    <modules>
        <remove name="WebDAVModule" />
    </modules>
    <handlers>
        <remove name="WebDAV" />
    </handlers>
</system.webServer>
幻天芒 | 园豆:37175 (高人七级) | 2015-10-10 16:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册