关于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>
- 这样修改是可以跨域请求了 。
- 留下笔迹,防止忘记
关于webApi 跨域请求的更多相关文章
- aspnet webapi 跨域请求 405错误
跨域,请求按要求配置完毕之后,options预请求老是报错.原因是webapi 默认的web.config有配置 <handlers> <remove name="Exte ...
- [转载]aspnet webapi 跨域请求 405错误
写了个webapi给同事用ajax调用,配置完跨域以后get请求完全没问题,post就一直报405错误,花了半天时间就是解决不了,后来在网上看到一博主的帖子才知道原来是webapi 默认的web.co ...
- WebApi跨域请求
在实际开发中 会有提供webapi给前端js 直接调用的情况, 这时候就会有存在跨域的情况, 解决方案: 在Global中添加代码 protected void Application_BeginRe ...
- ASP.NET WEBAPI 跨域请求 405错误
浏览器报错 本来没有报这个错,当我在ajax中添加了请求头信息时报错 405的报错大概就是后端程序没有允许此次请求,要解决这个问题,就是在后端程序中允许请求通过.具体操作就是修改web.config配 ...
- 【笔记】Asp.Net WebApi对js POST带参数跨域请求的支持方案
先说下需求:在原来的WebApi项目中增加对js跨域的请求支持,请求方式:以POST为主,webapi路由规则根据原项目需求修改如下: public static void Register(Http ...
- webapi 解决ajax跨域请求问题
webapi在配置文件中加入这几句就可以解决ajax(同源策略是JavaScript里面的限制,其他的编程语言,比如在C#,Java或者iOS等其他语言中是可以调用外部的WebService,也就是 ...
- jquery.ajax 跨域请求webapi,设置headers
解决跨域调用服务并设置headers 主要的解决方法需要通过服务器端设置响应头.正确响应options请求,正确设置 JavaScript端需要设置的headers信息 方能实现. 1.第一步 服务端 ...
- Nginx 解决WebApi跨域二次请求以及Vue单页面问题
一.前言 由于项目是前后端分离,API接口与Web前端 部署在不同站点当中,因此在前文当中WebApi Ajax 跨域请求解决方法(CORS实现)使用跨域处理方式处理而不用Jsonp的方式. 但是在一 ...
- 使用Cors在WebApi中实现跨域请求,请求方式为angular的 $http.jsonp
使用Cors在WebApi中实现跨域请求 第一步,在webapi项目中安装cors 在Web API配置文件中(Global.asax)进行全局配置: public class WebApiAppli ...
随机推荐
- leetcode 890. 查找和替换模式 Python
用模式的每个字母去当做key对应单词列表的每个字母value, 如果放进dict之前检测到key已经存在,就检测Word[i][j]是否是和已经存在的value一致,不一致就代表不匹配,break检查 ...
- C#源码发送简单的HTTP请求
如下代码内容是关于C#发送简单的HTTP请求的代码,应该能对大家有用处. using System;using System.Collections.Generic;using System.Linq ...
- 7.2 if else 语句
7.2 if else 语句 if else语句的通用形式是: if ( expression ) statement1 else statement2 如果expression为真(非0),则执行s ...
- .net 多线程临时变量
结果 : 5 5 5 5 5 结果:0 1 2 3 4
- 数据库-PLSQL登录oracle数据库卡死(未响应)解决方法
上次重装系统后重新安装了oracle和PLSQL,哪知道PLSQL登录不了,一登录就未响应,但如果不登录就不卡死,直接就进去了.在网上查了很多解决方法,都没有用. 后来在百度文库找到解决办法,重启Or ...
- python 字符串转16进制函数
需要用python处理16进制的文本,比如像下面这个文本 40 80 C0 40 80 C0 40 80 C0 40 80 C0 40 BF CC 40 80 C0 40 80 C0 40 80 C0 ...
- Oracle高级查询,over 用法
注:标题中的红色order by是说明在使用该方法的时候必须要带上order by. 一.rank()/dense_rank() over(partition by ...order by ...) ...
- 常见26种NLP任务的练手项目
经常有人问我:老大让我完成xxx,我不会,他也不会,但是很着急.这个任务怎么实现啊?这个任务需要什么技术啊?这种情况我遇到有100+次了,而且很多时候问得问题跟具体需要的技术简直是驴唇不对马嘴.所以今 ...
- Python全栈开发记录_第九篇(面向对象(类)的学习)
有点时间没更新博客了,今天就开始学习类了,今天主要是面向对象(类),我们知道面向对象的三大特性,那就是封装,继承和多态.内容参考该博客https://www.cnblogs.com/wupeiqi/p ...
- IDEA tomcat8 控制台日志乱码
瞎扯一句:由于tomcat7之前编码默认都是GBK,tomcat8之后都是UTF-8 1.在idea64.exe.vmoptions(我装的是64位的)最后加入 -Dfile.encoding=UTF ...