官网上有一个介绍

http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api

但是只支持4.5,如果是4.0开发,需要自己手动了。

默认是不支持跨域的,如果你从一个域访问另一个域的api

虽然是200,但是什么东西都没有返回

在api的响应头上加入

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");

则可以被跨域访问。

如果希望带cookie信息,则ajax请求时,需要

$.ajax({
type: "get",
url: "http://localhost:6836/api/values",
xhrFields: { withCredentials: true }
})

此时,请求头中会带cookie

如果服务器不做任何设置

又会出现200,但是没有收到值的情况

需要在响应头中加入

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Credentials", "true");

但是还是会发生200,没有返回值

通过对比ms提供的和自己写的发现

我们自己写的指定的是*,而ms是具体的地址。把*改成具体的地址,则ok

地址可以通过

Request.Headers.GetValues("Origin")

获取请求头中的信息

以上方式,只适合夸子域的请求,如果是根域都跨了,他是不会在头中添加cookie的。

这个时候,我们可以使用一个自定义头来发送一些内容。

在发送带有自定义头的请求时,会先以一个Options method发起请求,查看是否允许子定义的头

这个时候,服务端首先要允许options method,然后

Headers.Add("Access-Control-Allow-Headers","*");

同样注意把*替换成你的自定义头

可以添加Access-Control-Allow-Methods头来设置允许的method
 
最后再jquery中
$.ajax({
headers:{name:value}
})

asp.net web api 跨域,带cookie的更多相关文章

  1. ASP.NET Core Web API 跨域(CORS) Cookie问题

    身为一个Web API,处理来自跨域不同源的请求,是一件十分合理的事情. 先上已有的文章,快速复制粘贴,启用CORS: Microsoft:启用 ASP.NET Core 中的跨域请求 (CORS) ...

  2. asp.net web api 跨域问题

    缘起 以前在asp.net mvc时代,很少出现跨域问题 自从使用了asp.net web api + angular (1/2)之后,开始有跨域问题了. 简单普及下跨域: 我的理解是只要是前台页面与 ...

  3. ASP.NET web api 跨域请求

    1.学习文章:AJAX 跨域请求 - JSONP获取JSON数据 1.asp.net代码 参考文章:http://www.sxt.cn/info-2790-u-756.html (1).增加CorsH ...

  4. ASP.NET Web API 跨域访问(CORS)

    一.客户端用JSONP请求数据 如果你想用JSONP来获得跨域的数据,WebAPI本身是不支持javascript的callback的,它返回的JSON是这样的: {"YourSignatu ...

  5. ASP.NET Web API 跨域访问(CORS)要注意的地方

    一.客户端用JSONP请求数据 如果你想用JSONP来获得跨域的数据,WebAPI本身是不支持javascript的callback的,它返回的JSON是这样的: {"YourSignatu ...

  6. ASP.NET Web API 跨域访问

    自定义特性 要在WebApi中实现JSONP,一种方式是实现自定义特性  http://stackoverflow.com/questions/9421312/jsonp-with-asp-net-w ...

  7. 【ASP.NET Web API教程】5.5 ASP.NET Web API中的HTTP Cookie

    原文:[ASP.NET Web API教程]5.5 ASP.NET Web API中的HTTP Cookie 5.5 HTTP Cookies in ASP.NET Web API 5.5 ASP.N ...

  8. Web Api跨域访问配置及调用示例

    1.Web Api跨域访问配置. 在Web.config中的system.webServer内添加以下代码: <httpProtocol> <customHeaders> &l ...

  9. 跨域带cookie失效的解决方案

    在webpack的tableproxy那儿配置完跨域以后,想给cookie添加domain以便请求的时候带上cookie domain为localhost,cookie不会失效,但是一但改成baidu ...

随机推荐

  1. Windows 安装并配置 MySQL 5.6

    Windows 下安装 MySQL 有两种方式,一种是下载安装包,根据提示一路 next 安装,不需要什么配置,比较简单:另一种是下载压缩包,通过命令和配置来安装,也不难,个人感觉更简单.本篇就采用第 ...

  2. 使用FFMpeg命令行录屏推rtmp流

    最近在做局域网内屏幕分享方面的东西,要把录制一台设备的屏幕然后实时推送给内网的一个或多个用户. 做了很多实验,效果还没有达到要求,这里分享一下推rtmp流的实验. 实验使用到的各种工具:FFmpeg. ...

  3. ABP框架踩坑记录

    ABP框架踩坑记录 ASP.NET Boilerplate是一个专用于现代Web应用程序的通用应用程序框架. 它使用了你已经熟悉的工具,并根据它们实现最佳实践. 文章目录 使用MySQL 配置User ...

  4. Hello World! 我的程序员入坑之旅!

    先说下本文标题,各行各业都有自己的行规和一些内行人玩的梗什么的,这是我开始写技术博客的第一篇,所以它的标题毫无疑问只能是Hello World! 介绍一下我自己 我算是一个少见的科班出身的开发者了,1 ...

  5. 编码CODING

    摘自(复制)于海燕博客: http://www.cnblogs.com/haiyan123/p/7230533.html 1.内存和硬盘都是用来存储的. CPU:速度快 硬盘:永久保存 2.文本编辑器 ...

  6. 741. Cherry Pickup

    In a N x N grid representing a field of cherries, each cell is one of three possible integers. 0 mea ...

  7. 分布式ehcache缓存

    今天在这里了记录一下学习ehcache分布式集群的过程. ehcache的三种最为常用集群方式,分别是 RMI.JGroups 以及 EhCache Server . 这里主要讲一下rmi方式. 1. ...

  8. POJ 1126

    #include <stdio.h> #include <string> #include <iostream> using namespace std; int ...

  9. c#调用R

    R.NET使用文档 介绍 本页面涉及R.NET1.5.13. 1.5.13版本在功能上等同于1.5.12,但可作为一个包在NuGet.org上获得. R.NET使.NET框架与R统计语言在同一进程进行 ...

  10. 多维标度法(MDS)的Python实现

    多维标度法(multidimensional scaling,MDS)是一种在低维空间展示“距离”数据结构的多元数据分析技术,是一种将多维空间的研究对象( 样本 或 变量 ) 简化到低维空间进行定位. ...