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. VS编译命令

    一.前言 由于公司要求项目需要走CI构建平台,抛弃掉之前的人工编译打包方式,所以需要调研一下项目怎么通过命令行编译出产物. 二.准备工作 在构建机器上安装vs(本文示例为vs2017) 将代码上传版本 ...

  2. SSM(Spring+SpringMVC+Mybatis)框架整合

    1.数据准备 SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `admin` -- - ...

  3. MESSAGE_TYPE_X dump in RSM_DATASTATE_CHECK -6-

    DTP抽数时系统Dump 参考sapnote:2398760 - MESSAGE_TYPE_X dump in RSM_DATASTATE_CHECK -1- to -12- RSM_DATASTAT ...

  4. adb shell常用命令

    一.文件操作相关命令 1.文件操作命令 子命令 参数 说明 cd 无 进入目录 cat [-beflnstuv] [-B bsize] [file...] 查看文件内容-n:显示行号-b:显示行号,但 ...

  5. JDK1.8新特性-Lambda表达式

    Lambda 表达式 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性. Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中). 使用 Lambda 表 ...

  6. mongodb 简单的增删改查

    增加 语法: db.collectionName.insert({json对象}); 1. 增加单个文档,json对象格式 db.user.insert({name:'lee',age:23,sex: ...

  7. GitHub 设置和取消代理,加速 git clone

    git 设置代理: git config --global git 取消代理: git config --global --unset http.proxy 针对 github.com 设置代理: g ...

  8. AVProVideo 在android 真机使用经验分享

    AVProVideo 在 android 方面 如果想使用必须进行合理的设置:如图 发布的时候设置: 如果想使用代码替换播放视频: 第一步:设置  PlatformOptionsAndroid.ove ...

  9. C#_.NetCore_Web项目_EXCEL数据导出(ExcelHelper_第一版)

    项目需要引用NPOI的Nuget包:DotNetCore.NPOI-v1.2.2 A-前端触发下载Excel的方法有三种: 1-JS-Url跳转请求-后台需要返回文件流数据: window.Locat ...

  10. Ubuntu 无法打开系统设置

    最近不知道咋搞得,导致系统设置打不开,可能是系统输入法的问题吧,运行以下命令: sudo apt-get install gnome-control-center