关于webApi 跨域请求

先说一下我的项目,后台单纯的webApi,前端采用Vue+axios,

 

说一下我遇见的问题,axios请求webAPI但是浏览器会报错,大致上就是不允许跨域请求。

于是查找解决办法发现以下代码(web.config)(直接粘贴了)

 <!--以下配置为了让IIS7+支持Put/Delete方法-->
15         <httpProtocol>
16             <customHeaders>
17                 <add name="Access-Control-Allow-Origin" value="*" />
18                 <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
19                 <add name="Access-Control-Allow-Headers" value="Content-Type" />
20             </customHeaders>
21         </httpProtocol>
22         <!--IIS7/7.5上必须加这个配置,否则访问报错--> 
23         <modules>
24             <remove name="WebDAVModule" />
25         </modules>
26         <validation validateIntegratedModeConfiguration="false" />
27         <handlers>
28             <remove name="WebDAV" />
29             <remove name="WebAPI_64bit" />
30             <remove name="WebAPI_32bit" />
31             <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
32             <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
33             <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
34             <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" resourceType="Unspecified" requireAccess="Script" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
35             <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" resourceType="Unspecified" requireAccess="Script" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
36             <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" resourceType="Unspecified" requireAccess="Script" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
37             <add name="WebAPI_64bit" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
38             <add name="WebAPI_32bit" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
39         </handlers>



毫无疑问,网上的大致上都是这写法,然而这种写法对于直接新建webapi项目不适用,尤其是 <handlers></handlers>里面的写法,完全不管用,至少对于我不管用。前端根本访问不了,直接报405错误,
于是正确的修改如下:
 
15         <httpProtocol>
16             <customHeaders>
17                 <add name="Access-Control-Allow-Origin" value="*" />
18                 <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
19                 <add name="Access-Control-Allow-Headers" value="Content-Type" />
20             </customHeaders>
21         </httpProtocol>
22          
23         <modules>
24             <remove name="WebDAVModule" />
25         </modules>
26         <validation validateIntegratedModeConfiguration="false" />
27         <handlers>
28             <remove name="WebDAV" />
29           
39         </handlers>


这样修改是可以跨域请求了 。


留下笔迹,防止忘记







转载于:https://www.cnblogs.com/HandSomeBoyIsMe/p/7750551.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值