跨域

一个域名地址的组成

http:// www abc.com : 8080 / scripts/jquery.js

协议 子域名 主域名 端口号 请求资源地址

端口号:一般来说域名端口号是80,如果端口号是80,可以省略

什么是跨域

JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。什么是跨域呢,简单地理解就是因为JavaScript同源策略的限制, a.com域名下的js无法操作b.com或是c.a.com域名下的对象。

JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。

www.abc.com/index.html调用www.abc.com/service.php (非跨域)

www.abc.com/index.html调用www.efg.com/service.php (跨域)

www.abc.com/index.html调用bbs.abc.com/service.php (跨域)

www.abc.com/index.html调用www.abc.com:81/service.php (跨域)

www.abc.com/index.html调用https://www.abc.com/service.php(跨域) 没有写协议,默认是http协议

主域名与子域名

主域名

abc.com

子域名

www.a bc.com

bbs.abc.com

beijing.bbs.abc.com

haidian.beijing.bbs.abc.com

处理跨域方法一 ——代理

通过在同域名的web服务器端创建一个代理:

北京服务器(域名: www.beijjing.com )

上海服务器(域名: www.shanghai.com )

比如在北京的web服务器的后台

( www.beijing.com/proxy-shanghaiservice.php )来调用上海服务器

( www.shanghai.com/service.php )的服务,然后再把响应结果返回给前端,这样前端调用北京同域名的服务就和调用上海的服务效果相同了。

处理跨域方法二 ——JSONP

jQuery的AJAX方法本身就支持JSONP的处理方式

只能对GET请求起到效果,不能改造POST请求。

注意:JSONP的方式是不支持POST请求的

JSONP可用于解决主流浏览器(GET请求)的跨域数据访问的问题。

在www.aaa.com页面中:

<script>
function jsonp(json){
alert(json["name"]);
}
</script>
//script标签可以向不同的域名提交HTTP请求
//载入另一个域名的jsonp.js
<script src= "http://www.bbb.com/jsonp.js"> </script>

在www.bbb.com页面中:

jsonp({' name':'洪七','age':24));

这种方法是借助script标签节点可以跨域访问的特性

处理跨域方法三 ——XHR2

HTML5提供的XMLHttpRequest Level2已经实现了跨域访问以及其他的一些新功能

IE10以下的版本都不支持

在服务器端做一些小小的改造即可:

//*表示所有域都可以访问,也可以设置特定域名
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow- Methods:POST,GET');

AJAX学习笔记——跨域的更多相关文章

  1. jw player学习笔记----跨域请求

    需求来源:播放器皮肤文件请求不到,被限制了. 参考官网解决方案: http://www.longtailvideo.com/support/jw-player/28844/crossdomain-fi ...

  2. 【Java Web开发学习】跨域请求

    [Java Web开发学习]跨域请求 ================================================= 1.使用jsonp ===================== ...

  3. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  4. js中ajax如何解决跨域请求

    js中ajax如何解决跨域请求,在讲这个问题之前先解释几个名词 1.跨域请求 所有的浏览器都是同源策略,这个策略能保证页面脚本资源和cookie安全 ,浏览器隔离了来自不同源的请求,防上跨域不安全的操 ...

  5. 06: AJAX全套 & jsonp跨域AJAX

    目录: 1.1 AJAX介绍 1.2 jQuery AJAX(第一种) 1.3 原生ajax(第二种) 1.4 iframe“伪”AJAX(第三种) 1.5 jsonp跨域请求 1.6 在tornad ...

  6. vue.js学习之 跨域请求代理与axios传参

    vue.js学习之 跨域请求代理与axios传参 一:跨域请求代理 1:打开config/index.js module.exports{ dev: { } } 在这里面找到proxyTable{}, ...

  7. ajax请求ashx跨域问题解决办法

    ajax请求ashx跨域问题解决办法 https://blog.csdn.net/windowsliusheng/article/details/51583566 翻译windowsliusheng  ...

  8. AJAX学习笔记2:XHR实现跨域资源共享(CORS)以及和JSONP的对比----转载

    1 前言: 首先对参考文章作者表示感谢,你们的经验总结给我们这些新手提供了太多资源.本文致力于解决AJAX的CORS问题,我在逻辑上进行了梳理:首先,系统的总结了CORS问题的起源-同源策略:其次,介 ...

  9. 跨域学习笔记1--跨域调用webapi

    在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案. 通过自己的研究以及在网上看了一些大神的博客,写了一个Demo 首先新建一个webapi的程序,如下图所示: 由于微软已 ...

随机推荐

  1. Elasticsearch 全文搜索

    1,匹配查询(match) match查询主要的应用场景是进行全文搜索: // 1,初始化数据 DELETE /my_index PUT /my_index { "settings" ...

  2. 守护进程daemon

    # -*- coding: utf-8 -*- import sys, os, time, atexit from signal import SIGTERM class Daemon: def __ ...

  3. [Nuget] - "Runtime error: Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0'" 问题之解决

    环境 项目中使用了 System.Web.WebPages.Razor, Version=3.0.0.0,Nuget 还原缺失包后自动更新至 Version=3.2.5.0,编译成功,运行失败. 错误 ...

  4. Java基础笔试练习(一)

    1. 若在某一个类定义中定义有如下的方法: abstract void performDial( ); 该方法属于() ? A.本地方法 B.最终方法 C.静态方法 D.抽象方法 答案: D 解析: ...

  5. 自定义注解扩展springMvc的validation注解

    文章目录 前言 自定义校验注解 使用 后记 前言 我们都知道 springMvc 的检验框架使用的是 hibernate 的 validator ,检验数据,是有那么一点小爽快: 但是,validat ...

  6. xsy 2018 【NOIP2013】货车运输

    [NOIP2013]货车运输 Description A 国有n座城市,编号从1到n,城市之间有m条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有q辆货车在运输货物,司机们想知道每辆车在不超 ...

  7. php创建生成数组的相关函数

    php中和数组创建生成的函数有很多,用于定义数组的函数array(),数组合并函数array_combine(),还有array_fill(),array_fill_keys(),range()等等. ...

  8. Linux基础-08-进程控制

    1. 系统监视和进程控制工具—top和free 1) top命令的功能:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. 2) ...

  9. HCIA SWITCHING&ROUTTING 笔记——第一章 TCP/IP基础知识(2)

    视频地址:https://ilearningx.huawei.com/courses/course-v1:HuaweiX+EBGTC00000336+Self-paced/courseware/abb ...

  10. C++动态内存常见面试题解析

           malloc/free和new/delete傻傻分不清?动态内存管理的面试题难道你了?来看这篇文章,包你全会. 1.malloc/free和new/delete的区别   (1)mall ...