先下载支持跨域的.dll,然后using System.Web.Http.Cors.

我把webapi解决方案部署到IIS上了.测试过后可以解决跨域.

方案一(用了*号,这样有安全隐患.):

直接在webapi解决方案中的控制器类上加上说明:

namespace WebApiDemo.Controllers
{
[EnableCors(origins: "http://localhost:8080/", headers: "*", methods: "GET,POST,PUT,DELETE")]
public class WebApiTestController : ApiController
{
[HttpGet]
public string GetString()
{
return "webapitest2222";
}
}
}

客户端调用:

        jQuery.support.cors = true;//最好加上这个,说明JQuery支持跨域.这样就兼容了IE9以下版本.
$(function () {
$("#btnwebapi").click(function () { $.ajax({
url: 'http://localhost/webapiDemo/api/WebApiTest/getstring',//'/api/webapi/GetProduct',
//data: JSON.stringify(model),//传给服务器的数据(即后台AddUsers()方法的参数,参数类型要一致才可以)
type: 'get',
contentType: 'application/json;charset=utf-8',//数据类型必须有
async: true,//异步
success: function (data) //成功后的回调方法
{
alert(data)//弹出框
},
error: function (data) {
alert("失败:" + data[0])//弹出框
} });
})
})

方案二:

先配置web.config

<configuration>

  <appSettings>
<add key="cors_allowOrigins" value="*"/>
<add key="cors_allowHeaders" value="*"/>
<add key="cors_allowMethods" value="*"/>
</appSettings> .....
</configuration>

然后在APP_start文件夹下的单元中注册

        public static void Register(HttpConfiguration config)
{
// Web API 配置和服务--跨域
var allowOrigins = ConfigurationManager.AppSettings["cors_allowOrigins"];
var allowHeaders = ConfigurationManager.AppSettings["cors_allowHeaders"];
var allowMethods = ConfigurationManager.AppSettings["cors_allowMethods"];
var globalCors = new EnableCorsAttribute(allowOrigins, allowHeaders, allowMethods);
globalCors.SupportsCredentials = true;
config.EnableCors(globalCors); // Web API 路由
config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}

参考 原文地址:http://www.cnblogs.com/moretry/p/4154479.html

WebAPI 跨域解决方案.的更多相关文章

  1. WebApi 跨域解决方案 --CORS

    跨站HTTP请求(Cross-site HTTP request)是指发起请求的资源所在域不同于请求指向的资源所在域的HTTP请求. 比如说,我在Web网站A(www.a.com)中通过<img ...

  2. C#进阶系列——WebApi 跨域问题解决方案:CORS

    前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看WebAPI的另一个常见问题:跨域问题.本篇主要从实例的角度分享下CORS解决跨域问题一些细节. WebApi系列文章 C#进阶系列— ...

  3. WebApi 跨域问题解决方案:CORS

    注:本文为个人学习摘录,原文地址:http://www.cnblogs.com/landeanfen/p/5177176.html 前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看W ...

  4. C#进阶系列——WebApi 跨域问题解决方案:CORS(转载)

    C#进阶系列——WebApi 跨域问题解决方案:CORS   阅读目录 一.跨域问题的由来 二.跨域问题解决原理 三.跨域问题解决细节 1.场景描述 2.场景测试 四.总结 正文 前言:上篇总结了下W ...

  5. (转)C# WebApi 跨域问题解决方案:CORS

    原文地址:http://www.cnblogs.com/landeanfen/p/5177176.html 阅读目录 一.跨域问题的由来 二.跨域问题解决原理 三.跨域问题解决细节 1.场景描述 2. ...

  6. (4)WebApi 跨域问题

    在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案. 通过自己的研究以及在网上看了一些大神的博客,写了一个Demo 首先新建一个webapi的程序,如下图所示: 由于微软已 ...

  7. asp.net web api2.0 ajax跨域解决方案

    asp.net web api2.0 ajax跨域解决方案 Web Api的优缺点就不说了,直接说怎么跨域,我搜了一下,主要是有两种.  一,ASP.NET Web API支持JSONP,分两种 1, ...

  8. 关于WebApi 跨域问题的解决的方式

    最近在做WebApi 进行开发的时候 一直会遇到跨域方面的问题那么如何进行跨域问题其实非常的简单. 1.一直在使用WebApi的时候总是遇到跨域的问题 那么 什么是跨域?跨域,指的是浏览器不能执行其他 ...

  9. asp.net—WebApi跨域

    一.什么是跨域? 定义:是指浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制. 同源策略限制了以下行为: 1.Cookie.LocalStora ...

随机推荐

  1. Java遍历二叉树深度宽度

    节点数据结构 class TreeNode { TreeNode left = null; TreeNode right = null; } 最大深度,基本思路是:使用递归,分别求出左子树的深度.右子 ...

  2. JWT 在前后端分离中的应用与实践

    关于前后端分离 前后端分离是一个很有趣的议题,它不仅仅是指前后端工程师之间的相互独立的合作分工方式,更是前后端之间开发模式与交互模式的模块化.解耦化.计算机世界的经验告诉我们,对于复杂的事物,模块化总 ...

  3. Java 小记 — Spring Boot 的实践与思考

    前言 本篇随笔用于记录我在学习 Java 和构建 Spring Boot 项目过程中的一些思考,包含架构.组件和部署方式等.下文仅为概要,待闲时逐一整理为详细文档. 1. 组件 开源社区如火如荼,若在 ...

  4. SqlServer之like、charindex、patindex 在有无索引的情况下分析

    1.环境介绍 测试环境 SQL2005 测试数据 200W条 2.环境准备 2.1建表 CREATE TABLE [dbo].[Depratments](         [Dep_id] [int] ...

  5. BZOJ1565 植物大战僵尸 题解

    题目内容: 题目分析:有选A则必须选B这样的限制条件,可以发现这是最大权闭合子图模型,考虑环的情况,可以推测需要拓扑判环. 代码: #include<bits/stdc++.h> usin ...

  6. 在Vue.js2.0中组件模板子元素数量问题

    在Vue中当利用组件进行开发时候,组件所使用的模板只可以应用于一个根实例,当你需要添加多个子元素的时候,可以用一个div将它们包裹起来,代码如下: <template id="task ...

  7. 【Unity3D与23种设计模式】外观模式(Facade)

    GoF中定义: "为子系统定义一组统一的接口,这个高级的接口会让子系统更容易被使用" 其实这个模式虽然很少听过 但我们在敲代码的时候却是经常使用 比如: 在游戏初始化时 要初始化很 ...

  8. Servlet的三个域对象

    我们在开发javaweb项目的时候,经常会遇到jsp和Servet之间互相传值,既然有传值,就要有对象来传,这里先说Servlet的三大域对象,request,session,application他 ...

  9. node命令curl

    一.打开另一个命令行窗口,运行下面的命令. curl -X POST --data "name=Jack" 127.0.0.1:3000 上面代码使用 POST 方法向服务器发送一 ...

  10. 【Python】 list & dict & str

    list & dict & str 这三种类型是python中最常用的几种数据类型.他们都是序列的一种 ■ 序列通用操作 1. 分片   s[a:b] 返回序列s中从s[a]到s[b- ...