先说一下我的项目,后台单纯的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 跨域请求的更多相关文章

  1. aspnet webapi 跨域请求 405错误

    跨域,请求按要求配置完毕之后,options预请求老是报错.原因是webapi 默认的web.config有配置 <handlers> <remove name="Exte ...

  2. [转载]aspnet webapi 跨域请求 405错误

    写了个webapi给同事用ajax调用,配置完跨域以后get请求完全没问题,post就一直报405错误,花了半天时间就是解决不了,后来在网上看到一博主的帖子才知道原来是webapi 默认的web.co ...

  3. WebApi跨域请求

    在实际开发中 会有提供webapi给前端js 直接调用的情况, 这时候就会有存在跨域的情况, 解决方案: 在Global中添加代码 protected void Application_BeginRe ...

  4. ASP.NET WEBAPI 跨域请求 405错误

    浏览器报错 本来没有报这个错,当我在ajax中添加了请求头信息时报错 405的报错大概就是后端程序没有允许此次请求,要解决这个问题,就是在后端程序中允许请求通过.具体操作就是修改web.config配 ...

  5. 【笔记】Asp.Net WebApi对js POST带参数跨域请求的支持方案

    先说下需求:在原来的WebApi项目中增加对js跨域的请求支持,请求方式:以POST为主,webapi路由规则根据原项目需求修改如下: public static void Register(Http ...

  6. webapi 解决ajax跨域请求问题

    webapi在配置文件中加入这几句就可以解决ajax(同源策略是JavaScript里面的限制,其他的编程语言,比如在C#,Java或者iOS等其他语言中是可以调用外部的WebService,也就是 ...

  7. jquery.ajax 跨域请求webapi,设置headers

    解决跨域调用服务并设置headers 主要的解决方法需要通过服务器端设置响应头.正确响应options请求,正确设置 JavaScript端需要设置的headers信息 方能实现. 1.第一步 服务端 ...

  8. Nginx 解决WebApi跨域二次请求以及Vue单页面问题

    一.前言 由于项目是前后端分离,API接口与Web前端 部署在不同站点当中,因此在前文当中WebApi Ajax 跨域请求解决方法(CORS实现)使用跨域处理方式处理而不用Jsonp的方式. 但是在一 ...

  9. 使用Cors在WebApi中实现跨域请求,请求方式为angular的 $http.jsonp

    使用Cors在WebApi中实现跨域请求 第一步,在webapi项目中安装cors 在Web API配置文件中(Global.asax)进行全局配置: public class WebApiAppli ...

随机推荐

  1. Windows 上安装 MySQL(8.0.11)

    1.接下来我们需要配置下 MySQL 的配置文件 打开刚刚解压的文件夹 C:\web\mysql-8.0.11 ,在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息: [m ...

  2. php函数形参传值与传引用

    传值 ------------------------------------------------- function example( $m ){     $m = $m * 5 + 10;   ...

  3. 初次使用BAT,请检查Chrome浏览器和ChromeDriver兼容性

    ChromeDriver可以理解为Chrome驱动,它是架在BAT程序和Chrome之间的桥梁.但是ChromeDriver的问题是,每个版本的兼容范围很窄,通常只能兼容3个Chrome版本. 因此, ...

  4. rabbit原理及项目应用

    1.rabbitMQ是什么? mq是由erlang语言开发的开源的amqp的实现. 2.rabbitMQ的基本原理是什么? 使用RabbitMQ,首先需要与rabbitMQ的visiu host建立连 ...

  5. yum搭建 Lamp环境

    yum搭建Lamp yum install -y httpd yum install -y nano rpm 安装 Php7 相应的 yum源 rpm -Uvh https://dl.fedorapr ...

  6. php 关于laravel5.7框架

    一.配置 首先说下配置,安装node.js  .npm .cmd 命令行 node -v  .npm -v 若已安装出现版本号,若无自行百度 安装compaser 通过compaser命令安装lara ...

  7. C# 文字滚动特效(上下滚动)

    本程序改编至网上下载的一个自定义控件,原控件是左右滚动效果,类似于跑马灯效果,由于项目需要,改编为上下滚动. 前期没有实现自动折行,今天刚加上自动折行. using System; using Sys ...

  8. ABAP笔记

    ABAP程序开发,经常会遇到报表开发需求.使用ABAP的Report类型程序开发报表十分便利,用很少的代码就可以快速开发出一个报表.这种报表需求,抛开各种细枝末节,都可以归结为“三步走”:1.选择屏幕 ...

  9. Java——对象的复制、克隆、序列化

    原创作者: https://blog.csdn.net/lmb55/article/details/78277878对象克隆(复制)假如说你想复制一个简单变量.很简单: int apples = 5; ...

  10. Vue 封装可向左向右查看图片列表的组件

    <template> <div class="content-container"> <div class="content-contain ...