问题描述:

google插件跨域请求WebApi相关解决方案

1.ajax解决含登录用户信息

$.ajax({
url: url,
type: "POST",
timeout: 60000,
async: async,
data: params,
dataType: "json",
xhrFields: { withCredentials: true },
crossDomain: true, //注意这两行代码,这里包含跨域并且包含登录用户信息
success: function (data) {
call(data);
},
error: function (error) {//增加访问出错信息返回
alert(JSON.stringify(error));
},
complete: function (XMLHttpRequest, status) {
}
});

2.解决WebApi跨域的问题

WebApi中的设置:

using System.Web.Http.Cors;//引用

[EnableCors(origins: "*", headers: "*", methods: "*")]//注意在类上添加
public class DemoController : ApiController
{

    [Route("api/GatherOne"),HttpPost]

public HttpResponseMessage DemoCors()//注意这里的返回对象一定要含有HttpResponseMessage对象,因为这个对象添加响应表头,否则前端浏览器无法收到服务器端返回的值,并且报没有Access-Control-Allow-Origin的cors错误

        {            

            IEnumerable<string> origin;
Request.Headers.TryGetValues("Origin", out origin);//注意这里:获取前端的Origin值 if (origin.Any())
{
HttpResponseMessage httpResponseMessage = new HttpResponseMessage();
httpResponseMessage.Headers.Add("Access-Control-Allow-Origin", origin);//这里必须要添加此标签中,否则无法解决跨域的问题
httpResponseMessage.Headers.Add("Access-Control-Allow-Headers", "*");
httpResponseMessage.Headers.Add("Access-Control-Allow-Credentials", "true");
httpResponseMessage.Headers.Add("Access-Control-Allow-Methods", "*");
       }
    }

3.WebApi中获取前端headers中的值

IEnumerable<string> origin;
Request.Headers.TryGetValues("Origin", out origin);//获取Origin的值

google插件跨域含用户请求WebApi解决的方案的更多相关文章

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

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

  2. 记录我开发工作中遇到HTTP跨域和OPTION请求的一个坑

    我通过这篇文章把今天工作中遇到的HTTP跨域和OPTION请求的一个坑记录下来. 场景是我需要在部署在域名a的Web应用里用JavaScript去消费一个部署在域名b的服务器上的服务.域名b上的服务也 ...

  3. 解决跨站脚本注入,跨站伪造用户请求,sql注入等http安全漏洞

    跨站脚本就是在url上带上恶意的js关键字然后脚本注入了,跨站伪造用户请求就是没有经过登陆,用超链接或者直接url上敲地址进入系统,类似于sql注入这些都是安全漏洞. sql注入 1.参数化查询预处理 ...

  4. 跨域发送HTTP请求详解

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲述几种跨域发HTTP请求的几种方法,POST请求,GET请求 目录: 一,采用JsonP的方式(只能 ...

  5. 解决前后端调用,跨域二次请求Access-Control-Max-Age

    发现前后端分离的项目中,前端发起一个请求到后端,在Chrome浏览器下面debug的时候,Network下面看到同一个url有两条请求,url有两条请求,第一条请求的Method为OPTIONS,第二 ...

  6. Springboot中关于跨域问题的一种解决方法

    前后端分离开发中,跨域问题是很常见的一种问题.本文主要是解决 springboot 项目跨域访问的一种方法,其他 javaweb 项目也可参考. 1.首先要了解什么是跨域 由于前后端分离开发中前端页面 ...

  7. 2019-03-26 SpringBoot项目部署遇到跨域问题,记录一下解决历程

    近期SpringBoot项目部署遇到跨域问题,记录一下解决历程. 要严格限制,允许哪些域名访问,在application.properties文件里添加配置,配置名可以自己起: cors.allowe ...

  8. ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法

    原文:ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法 群里好几个朋友都提到过这样的问题,说他们在Silverlight中调用了WebServi ...

  9. vue路由的跳转-路由传参-cookies插件-axios插件-跨域问题-element-ui插件

    ---恢复内容开始--- 项目初始化 创建一个纯净的vue环境项目,手动书写全局的样式配置,全局的main,js配置 (1)如果vue项目在重构或者出错的时候,手动安装node_modules. 如果 ...

随机推荐

  1. 粒子群算法优化BP生物能神经网络

    定义: 粒子群中每个粒子的位置表示BP神经网络当前迭代中权值的集合,每个粒子的维数由网络中起连接作用的权值的数量和阈值个数决定,以给定训练样本集的神经网络输出误差作为神经网络训练问题的适应度函数,适应 ...

  2. CVE-2019-0708 远程桌面代码执行漏洞复现

    0x01 首先是靶机,这里的靶机是使用清水表哥提供的win7sp1的系统 漏洞环境使用VM安装Windows7 SP1模拟受害机Windows7 SP1下载链接:ed2k://|file|cn_win ...

  3. [Python]python去除两个txt文件的重复词汇 python 2020.2.10

    两个txt文件词汇,用换行符分隔.可以用代码将要处理的文件去掉另一个文件所包含的重复内容. 如: a.txt内容为: 衡山 泰山 西湖 紫禁城 b.txt内容为: 泰山 衡山 长白山 张三丰 将a.t ...

  4. 题解【洛谷P3406】海底高铁

    题面 比较基础的前缀和+差分. 注意开\(\text{long long}\) 直接上代码吧. #include <bits/stdc++.h> #define itn int #defi ...

  5. [POI2010] GRA-The Minima Game - 贪心,dp,博弈论

    给出N个正整数,AB两个人轮流取数,A先取.每次可以取任意多个数,直到N个数都被取走.每次获得的得分为取的数中的最小值,A和B的策略都是尽可能使得自己的得分减去对手的得分更大.在这样的情况下,最终A的 ...

  6. Docker镜像加速-配置阿里云镜像仓库

    Docker默认远程仓库是https://hub.docker.com/ 比如我们下载一个大点的东西,龟速 由于是国外主机,类似Maven仓库,慢得一腿,经常延迟,破损: 所以我们一般都是配置国内镜像 ...

  7. 最短路(Dijkstra,Floyd,Bellman_Ford,SPFA)

    当然,这篇文章是借鉴大佬的... 最短路算法大约来说就是有4种——Dijkstra,Floyd,Bellman_Ford,SPFA 接下来,就可以一一看一下... 1.Dijkstra(权值非负,适用 ...

  8. 微信小程序 selectComponent 值为null

    这个东西的执行时间感觉有点迷, 我遇到的情况是在page 的onReady  onShow 当中 使用 selectComponent 无法获取到子组件的对象 只好退而求其次  在需要触发的方法当中 ...

  9. [NOI2010] 超级钢琴 - 贪心,堆,ST表

    这也算是第K大问题的套路题了(虽然我一开始还想了个假算法),大体想法就是先弄出最优的一批解,然后每次从中提出一个最优解并转移到一个次优解,用优先队列维护这个过程即可. 类似的问题很多,放在序列上的,放 ...

  10. Oracle tnsnames.ora

    安装过ORACLE的都知道,oracle安装时需要进行配置,这个配置可以在客户端的企业管理器一步一步进行,或者直接拷贝一个tnsnames.ora文件到安装目录下(c:\app\Administrat ...