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 跨域的更多相关文章

  1. ajax——CORS跨域调用REST API 的常见问题以及前后端的设置

    RESTful架构是目前比较流行的一种互联网软件架构,在此架构之下的浏览器前端和手机端能共用后端接口. 但是涉及到js跨域调用接口总是很头疼,下边就跟着chrome的报错信息一起来解决一下. 假设:前 ...

  2. jquery ajax CORS 跨域訪问 WebService

    JS代码: var word = document.getElementById("word").value; $.ajax({ type: "POST", c ...

  3. 关于AJAX跨域和原生AJAX CORS跨域解决

    项目需求要在别人的域名下调用自己的接口,因为浏览器的同源策略是不允许不同域名下之间的信息交换,那就意味着要跨域处理 参考博客 :https://blog.csdn.net/Ulricalin/arti ...

  4. ajax jsonp跨域 【转】

    跨域的基本原理:    JSONP跨域GET请求是一个常用的解决方案,    JSONP的最基本的原理是:动态添加一个<script>标签,而script标签的src属性是没有跨域的限制的 ...

  5. AJAX POST&跨域 解决方案 - CORS

    一晃又到新年了,于是开始着手好好整理下自己的文档,顺便把一些自认为有意义的放在博客上,记录成点的点滴.          跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是 ...

  6. AJAX POST&跨域 解决方案 - CORS(转载)

    跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不可避免 ...

  7. 解决ajax请求cors跨域问题

    ”已阻止跨源请求:同源策略禁止读取位于 ***** 的远程资源.(原因:CORS 头缺少 'Access-Control-Allow-Origin').“ ”已阻止跨源请求:同源策略禁止读取位于 ** ...

  8. CORS跨域 Ajax headers 问题

    今天我们遇到了一个CORS跨域的问题Ajax如下 var url = "http://localhost:11980/api/Demo/GetString"; //api地址 $. ...

  9. 4 伪ajax:jsonp、cors 跨域请求

    一.同源策略 https://www.cnblogs.com/yuanchenqi/articles/7638956.html 同源策略(Same origin policy)是一种约定,它是浏览器最 ...

  10. ASP.NET MVC & WebApi 中实现Cors来让Ajax可以跨域访问 (转载)

    什么是Cors? CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing).它允许浏览器向跨源服务器,发出XMLHttpReq ...

随机推荐

  1. 4种MySQL分页查询优化的方法,你知道几个?

    前言 当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分页查询,也有很多种方法和优化的点.下面简单说一下我知道的 ...

  2. Codeforces Round #590 (Div. 3)

    A. Equalize Prices Again 题目链接:https://codeforces.com/contest/1234/problem/A 题意:给你 n 个数 , 你需要改变这些数使得这 ...

  3. C#线程学习笔记四:线程同步

    本笔记摘抄自:https://www.cnblogs.com/zhili/archive/2012/07/21/ThreadsSynchronous.html,记录一下学习过程以备后续查用.     ...

  4. 前后端分离及Element的使用

    1. 前后端分离 1.1 什么是前后端分离 在传统的web应用开发中,大多数的程序员会将浏览器作为前后端的分界线.将浏览器中为用户进行页面展示的部分称之为前端,而将运行在服务器,为前端提供业务逻辑和数 ...

  5. 【译】ModSecurity

    Preface 本篇译ModSecurity 主页的自身介绍. ModSecurity is an open source, cross-platform web application firewa ...

  6. EggJS接口开发

    需求 随着Nodejs的普及,前端开发的开发场景基本可以贯穿界面交互到数据存储,无缝实现全栈开发.最近在实现一个内部项目管理工具的时候,就尝试了一把接口和数据库开发. 什么是Egg.js Egg.js ...

  7. 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 ...

  8. 使用hexo、github Pages搭建博客

    1. 安装node 如果本机已经有node,为避免安装出现问题,建议先升级到最新版.参考:https://juejin.im/post/5b9739d1e51d450e9f66ee3b 2. 安装he ...

  9. ELK日志分析系统(1)-基本环境搭建

    1. 概述 ELK = Elasticsearch + Logstash + Kibana Elasticsearch是实时全文搜索和分析引擎,提供搜集.分析.存储数据三大功能:是一套开放REST和J ...

  10. CSS入门(定位的简单总结)

    一.定位 普通流定位 浮动定位 相对定位 绝对定位 固定定位 二.position定位 1.static(默认值) 2.relative 相对定位 3.absolute 绝对定位 4.fixed 固定 ...