问题描述:

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. Dubbo-服务注册中心之AbstractRegistryFactory等源码

    在上文中介绍了基础类AbstractRegistry类的解释,在本篇中将继续介绍该包下的其他类. FailbackRegistry 该类继承了AbstractRegistry,AbstractRegi ...

  2. linux用户管理相关命令

    查看用户以及用户组: cat /etc/group   [root@izuf60kjjii4iwkhdsly3bz html]# cat /etc/group   内容具体分析 /etc/group ...

  3. sqli-labs less-1 --> less-4

    Less-1  (报错注入) 因为第一次做这些题,不太了解,所以$sql下加上echo "$sql<br>";能更明显的看出具体的输入 1.判断是否存在注入点 当输入? ...

  4. Ubuntu系统Apache2部署SSL证书

    参考链接: https://help.aliyun.com/document_detail/102450.html?spm=a2c4g.11186623.6.582.17b74c07mBaXWS

  5. lampp ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'lepus'

    解决方法: 在[mysqlld]段下增加如下代码:skip-grant-tables: 1.which mysql 查看mysql位置,例如:/opt/lampp/bin/mysql 2.进入配置my ...

  6. jenkins Exec exit status not zero. Status [-1]

    jenkins是使用ssh连接服务器后,如果使用grep获取进程并kill时,会jenkins Exec exit status not zero. Status [-1],解决办法:在获取进程时,使 ...

  7. 转行小白成长路--java基础

    每天都会发一篇,一点一滴,记录在这条路上的足迹.立个flag 2019年3月份至今已近一年,对信息技术有个大概的了解,个人认为对于这门技术更应该从最底层的原理入手,了解计算机演化的历史,从计算机语言到 ...

  8. C语言移除链表元素

    删除链表中等于给定值 val 的所有节点. 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4 ...

  9. 巨杉Tech | SparkSQL+SequoiaDB 性能调优策略

    当今时代,企业数据越发膨胀.数据是企业的价值,但数据处理也是一种技术挑战.在海量数据处理的场景,即使单机计算能力再强,也无法满足日益增长的数据处理需求.所以,分布式才是解决该类问题的根本解决方案.而在 ...

  10. 随机数模块random_python

    一.随机数模块random 1.常用的几个方法: import randomprint(random.random()) #(0,1)之间的随机数字,如0.6772275352932792print( ...