AJAX-CORS 跨域
1、CORS就是一套AJAX跨域问题的解决方案。
2、CORS的原理: CORS定义一种跨域访问的机制,可以让AJAX实现跨域访问。
3、CORS浏览器支持情况:
  Chrome 3+
      Firefox 3.5
      Opera 12+
      Safari 4+
      IE 8+
4、JS-Ajax相关:
ajax({
	url : "XXXX",  // 请求url
	method: options.type, // 请求方式
	data: {"data" : "XXXX"}, //参数
	success: function () {
		//成功
	}
});
function ajax(options) {
	options = options || {};
	options.async = options.async || true;
	var params = '';
	for (var item in options.data) {
		params += (item + '=' + options.data[item] + '&');
	}
	if(params != ''){
		params = params.substring(0,params.length - 1);
	}
	if (options.method === 'get') {
		options.url += options.url.indexOf('?') == -1 ? '?' + params : params;
	}
	var xhr = createCORSXHR(options.method, options.url); //创建XHR对象
	if(xhr === null){
		console.log("XMLHttpRequest对象创建失败");
		return;
	}
	if (options.method === 'post') {
		//post方式需要自己设置http的请求头,来模仿表单提交。
		//放在open方法之后,send方法之前。
		if ("withCredentials" in xhr) {
			xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		}
		// 针对IE
		xhr.send(params); //post方式将数据放在send()方法里
	} else {
		xhr.send(); //get方式则填null
	}
	xhr.onload = function(){
		options.success(xhr.responseText);
	};
	xhr.onerror = function(){
		log.debug('ajax请求错误!');
	};
}
/**
 * 创建跨域XMLHttpRequest对象
 * @param  {String} method HttpMethod
 * @param  {String} url    链接地址
 * @return {Object}        XMLHttpRequest对象
 */
function createCORSXHR(method, url) {
	var xhr = new XMLHttpRequest();
	if ("withCredentials" in xhr) {
		// 针对Chrome/Safari/Firefox.
		xhr.open(method, url, true);
	} else if (typeof XDomainRequest != "undefined") {
		// 针对IE
		xhr = new XDomainRequest();
		xhr.open(method, url);
	} else {
		// 不支持CORS
		xhr = null;
	}
	return xhr;
}
5、服务端:
// 跨域,只要在请求的接口加上这行代码
response.setHeader("Access-Control-Allow-Origin", "*"); //可以写成配置,指定域名
AJAX-CORS 跨域的更多相关文章
- ajax——CORS跨域调用REST API 的常见问题以及前后端的设置
		RESTful架构是目前比较流行的一种互联网软件架构,在此架构之下的浏览器前端和手机端能共用后端接口. 但是涉及到js跨域调用接口总是很头疼,下边就跟着chrome的报错信息一起来解决一下. 假设:前 ... 
- jquery ajax CORS 跨域訪问 WebService
		JS代码: var word = document.getElementById("word").value; $.ajax({ type: "POST", c ... 
- 关于AJAX跨域和原生AJAX  CORS跨域解决
		项目需求要在别人的域名下调用自己的接口,因为浏览器的同源策略是不允许不同域名下之间的信息交换,那就意味着要跨域处理 参考博客 :https://blog.csdn.net/Ulricalin/arti ... 
- ajax jsonp跨域  【转】
		跨域的基本原理: JSONP跨域GET请求是一个常用的解决方案, JSONP的最基本的原理是:动态添加一个<script>标签,而script标签的src属性是没有跨域的限制的 ... 
- AJAX POST&跨域 解决方案 - CORS
		一晃又到新年了,于是开始着手好好整理下自己的文档,顺便把一些自认为有意义的放在博客上,记录成点的点滴. 跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是 ... 
- AJAX POST&跨域 解决方案 - CORS(转载)
		跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不可避免 ... 
- 解决ajax请求cors跨域问题
		”已阻止跨源请求:同源策略禁止读取位于 ***** 的远程资源.(原因:CORS 头缺少 'Access-Control-Allow-Origin').“ ”已阻止跨源请求:同源策略禁止读取位于 ** ... 
- CORS跨域 Ajax headers 问题
		今天我们遇到了一个CORS跨域的问题Ajax如下 var url = "http://localhost:11980/api/Demo/GetString"; //api地址 $. ... 
- 4 伪ajax:jsonp、cors 跨域请求
		一.同源策略 https://www.cnblogs.com/yuanchenqi/articles/7638956.html 同源策略(Same origin policy)是一种约定,它是浏览器最 ... 
- ASP.NET MVC & WebApi 中实现Cors来让Ajax可以跨域访问 (转载)
		什么是Cors? CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing).它允许浏览器向跨源服务器,发出XMLHttpReq ... 
随机推荐
- 4种MySQL分页查询优化的方法,你知道几个?
			前言 当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分页查询,也有很多种方法和优化的点.下面简单说一下我知道的 ... 
- Codeforces Round #590 (Div. 3)
			A. Equalize Prices Again 题目链接:https://codeforces.com/contest/1234/problem/A 题意:给你 n 个数 , 你需要改变这些数使得这 ... 
- C#线程学习笔记四:线程同步
			本笔记摘抄自:https://www.cnblogs.com/zhili/archive/2012/07/21/ThreadsSynchronous.html,记录一下学习过程以备后续查用. ... 
- 前后端分离及Element的使用
			1. 前后端分离 1.1 什么是前后端分离 在传统的web应用开发中,大多数的程序员会将浏览器作为前后端的分界线.将浏览器中为用户进行页面展示的部分称之为前端,而将运行在服务器,为前端提供业务逻辑和数 ... 
- 【译】ModSecurity
			Preface 本篇译ModSecurity 主页的自身介绍. ModSecurity is an open source, cross-platform web application firewa ... 
- EggJS接口开发
			需求 随着Nodejs的普及,前端开发的开发场景基本可以贯穿界面交互到数据存储,无缝实现全栈开发.最近在实现一个内部项目管理工具的时候,就尝试了一把接口和数据库开发. 什么是Egg.js Egg.js ... 
- K8S 1.16 [plugin flannel does not support config version
			[plugin flannel does not support config version 导致 Unable to update cni config: no valid networks fo ... 
- 使用hexo、github Pages搭建博客
			1. 安装node 如果本机已经有node,为避免安装出现问题,建议先升级到最新版.参考:https://juejin.im/post/5b9739d1e51d450e9f66ee3b 2. 安装he ... 
- ELK日志分析系统(1)-基本环境搭建
			1. 概述 ELK = Elasticsearch + Logstash + Kibana Elasticsearch是实时全文搜索和分析引擎,提供搜集.分析.存储数据三大功能:是一套开放REST和J ... 
- CSS入门(定位的简单总结)
			一.定位 普通流定位 浮动定位 相对定位 绝对定位 固定定位 二.position定位 1.static(默认值) 2.relative 相对定位 3.absolute 绝对定位 4.fixed 固定 ... 
