关于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 ...
随机推荐
- Windows 上安装 MySQL(8.0.11)
1.接下来我们需要配置下 MySQL 的配置文件 打开刚刚解压的文件夹 C:\web\mysql-8.0.11 ,在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息: [m ...
- php函数形参传值与传引用
传值 ------------------------------------------------- function example( $m ){ $m = $m * 5 + 10; ...
- 初次使用BAT,请检查Chrome浏览器和ChromeDriver兼容性
ChromeDriver可以理解为Chrome驱动,它是架在BAT程序和Chrome之间的桥梁.但是ChromeDriver的问题是,每个版本的兼容范围很窄,通常只能兼容3个Chrome版本. 因此, ...
- rabbit原理及项目应用
1.rabbitMQ是什么? mq是由erlang语言开发的开源的amqp的实现. 2.rabbitMQ的基本原理是什么? 使用RabbitMQ,首先需要与rabbitMQ的visiu host建立连 ...
- yum搭建 Lamp环境
yum搭建Lamp yum install -y httpd yum install -y nano rpm 安装 Php7 相应的 yum源 rpm -Uvh https://dl.fedorapr ...
- php 关于laravel5.7框架
一.配置 首先说下配置,安装node.js .npm .cmd 命令行 node -v .npm -v 若已安装出现版本号,若无自行百度 安装compaser 通过compaser命令安装lara ...
- C# 文字滚动特效(上下滚动)
本程序改编至网上下载的一个自定义控件,原控件是左右滚动效果,类似于跑马灯效果,由于项目需要,改编为上下滚动. 前期没有实现自动折行,今天刚加上自动折行. using System; using Sys ...
- ABAP笔记
ABAP程序开发,经常会遇到报表开发需求.使用ABAP的Report类型程序开发报表十分便利,用很少的代码就可以快速开发出一个报表.这种报表需求,抛开各种细枝末节,都可以归结为“三步走”:1.选择屏幕 ...
- Java——对象的复制、克隆、序列化
原创作者: https://blog.csdn.net/lmb55/article/details/78277878对象克隆(复制)假如说你想复制一个简单变量.很简单: int apples = 5; ...
- Vue 封装可向左向右查看图片列表的组件
<template> <div class="content-container"> <div class="content-contain ...