asp.net web api 跨域,带cookie
官网上有一个介绍
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的更多相关文章
- ASP.NET Core Web API 跨域(CORS) Cookie问题
身为一个Web API,处理来自跨域不同源的请求,是一件十分合理的事情. 先上已有的文章,快速复制粘贴,启用CORS: Microsoft:启用 ASP.NET Core 中的跨域请求 (CORS) ...
- asp.net web api 跨域问题
缘起 以前在asp.net mvc时代,很少出现跨域问题 自从使用了asp.net web api + angular (1/2)之后,开始有跨域问题了. 简单普及下跨域: 我的理解是只要是前台页面与 ...
- ASP.NET web api 跨域请求
1.学习文章:AJAX 跨域请求 - JSONP获取JSON数据 1.asp.net代码 参考文章:http://www.sxt.cn/info-2790-u-756.html (1).增加CorsH ...
- ASP.NET Web API 跨域访问(CORS)
一.客户端用JSONP请求数据 如果你想用JSONP来获得跨域的数据,WebAPI本身是不支持javascript的callback的,它返回的JSON是这样的: {"YourSignatu ...
- ASP.NET Web API 跨域访问(CORS)要注意的地方
一.客户端用JSONP请求数据 如果你想用JSONP来获得跨域的数据,WebAPI本身是不支持javascript的callback的,它返回的JSON是这样的: {"YourSignatu ...
- ASP.NET Web API 跨域访问
自定义特性 要在WebApi中实现JSONP,一种方式是实现自定义特性 http://stackoverflow.com/questions/9421312/jsonp-with-asp-net-w ...
- 【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 ...
- Web Api跨域访问配置及调用示例
1.Web Api跨域访问配置. 在Web.config中的system.webServer内添加以下代码: <httpProtocol> <customHeaders> &l ...
- 跨域带cookie失效的解决方案
在webpack的tableproxy那儿配置完跨域以后,想给cookie添加domain以便请求的时候带上cookie domain为localhost,cookie不会失效,但是一但改成baidu ...
随机推荐
- 记录.NET Core部署到Linux之.NET Core环境搭建(1)
1.在安装.NET之前,您需要注册Microsoft密钥.注册产品存储库和安装所需的依赖项. 启动我们的虚拟机,输入以下命令: sudo rpm -Uvh https://packages.micro ...
- Python 获取秒级时间戳与毫秒级时间戳
原文:Python获取秒级时间戳与毫秒级时间戳 1.获取秒级时间戳与毫秒级时间戳 import time import datetime t = time.time() print (t) #原始时间 ...
- IAP远程在线升级
IAP远程在线升级 在上一篇中实现了LWIP网口通讯,那么肯定要加个在线升级功能,这个功能所占用的资源很少,但在物联网中很重要也很实用.在线升级就是像手机一样,先下载好系统,然后点击升级~然后就没然后 ...
- 638. Shopping Offers
In LeetCode Store, there are some kinds of items to sell. Each item has a price. However, there are ...
- MySQL(动态执行SQL)
day61 防sql注入 delimiter \\ CREATE PROCEDURE p4 ( ), in arg int ) BEGIN set @xo = arg; PREPARE xxx FRO ...
- 盗墓笔记—阿里旺旺ActiveX控件imageMan.dll栈溢出漏洞研究
本文作者:i春秋作家——cq5f7a075d 也许现在还研究Activex就是挖坟,但是呢,笔者是摸金校尉,挖坟,呸!盗墓是笔者的本职工作. 额,不扯了,本次研究的是阿里旺旺ActiveX控件imag ...
- 一种基于zookeeper的分布式队列的设计与实现
package com.ysl.zkclient.queue; import com.ysl.zkclient.ZKClient; import com.ysl.zkclient.exception. ...
- jvm(2)类的初始化(一)
[深入Java虚拟机]之三:类初始化 类初始化是类加载过程的最后一个阶段,到初始化阶段,才真正开始执行类中的Java程序代码. 1,下面说的初始化主要是类变量的初始化,实例变量的初始化触发条件不同(一 ...
- out.print()与out.write()的区别
out对象的类型是JspWriter.JspWriter继承了java.io.Writer类. 1)print方法是子类JspWriter,write是Writer类中定义的方法: 2)重载的prin ...
- day 33js 后续 函数.对象
前情提要: 今天学习的是js的函数以及简单的类的使用 一:函数的初识别 <!DOCTYPE html> <html lang="en"> <head& ...