`

实战web开发的跨域访问

阅读更多

以下方法在chrome,Firefox测试通过,其他浏览器没有测试.

先说一下测试环境

修改本地hosts配置如下(修改方法请自行百度)

IP Domain
127.0.0.1 qr.com
127.0.0.1 t1.qr.com
127.0.0.1 t2.qr.com

 

直接上代码

服务端代码(测试服务器采用nodejs)

服务器环境采用Express框架,下面插入关键代码(也就是头信息设置)

 

var express = require('express');
var api = module.exports = express();
var URL = require('url');
//设置跨域访问
api.all('/cookie', function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "http://t1.qr.com");
  res.header("Access-Control-Allow-Credentials", "true");
  res.header("Access-Control-Allow-Headers", "*");
  res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
  res.json({
    hostname: req.hostname,
    cookie: req.headers.cookie
  });
});
module.exports = api;

 

 

 

 

Web页面部分(index.html)

 

<!DOCTYPE html>
<html>
<head>
    <title>跨域测试</title>
    <script src="//cdn.bootcss.com/jquery/2.2.4/jquery.js"></script>
    <script>
        $.ajaxSetup({
            'xhr': function () {
                try {
                    var x = new window.XMLHttpRequest();
                    x.withCredentials = true;
                    return x;
                } catch (e) {
                }
            }
        });
        $(function () {
            // 初始化cookie
            document.cookie = 'text=this is my cookie;domain=.qr.com';
            $('#go').click(function () {
                $.get('http://t2.qr.com/cookie').success(function (data) {
                    console.log(data)
                    $('#content').text(JSON.stringify(data));
                });
            });
        })
    </script>
</head>

<body>
<button id="go"><h1>我要跨域访问</h1></button>
<h3 id="content"></h3>
</body>

</html>

 


测试流程

  1. 浏览器访问t1.qr.com/index.html
  2. 点击画面上的"我要跨域访问"按钮.

 

测试结果

1.Chrome

 2.FireFox



 完整代码我就不上传了

  • 描述: chrome截图
  • 大小: 365.2 KB
  • 描述: FireFox截图
  • 大小: 615.6 KB
分享到:
评论

相关推荐

    Python Django Web典型模块开发实战_关于跨域问题的解决办法_编程项目案例实例详解课程教程.pdf

    Python作为一门广泛应用于Web开发的语言,其Django框架提供了强大的功能来处理各种开发需求,包括解决跨域问题。随着版本的不断更新,Django提供了更多工具和优化,使得开发者能够更轻松地构建高性能、安全的Web应用...

    Java Web开发实战宝典 第17章 01-09

    《Java Web开发实战宝典》是由王国辉等专家编著的一本深入浅出的编程教程,专注于Java Web应用的开发技术。本章内容涵盖了从基础到进阶的多个知识点,旨在帮助读者掌握Java Web开发的核心技能。以下是针对章节17中01...

    在Firefox中通过AJAX跨域访问Web资源

    标题中的“在Firefox中通过AJAX跨域访问Web资源”是指使用Asynchronous JavaScript and XML (AJAX)技术在Mozilla Firefox浏览器中实现跨域数据请求。跨域是由于浏览器的同源策略(Same-origin policy)限制,它阻止...

    Java Web开发实战1200例第2卷

    《Java Web开发实战1200例第2卷》是一本深入浅出的教程,旨在帮助读者掌握Java Web开发的核心技术和实践应用。本书通过丰富的实例,涵盖了21至23章的内容,旨在让读者在实践中学习,提升技能。以下是根据这些章节...

    Delphi下用IntraWeb开发WEB程序应用实战.rar

    总之,Delphi结合IntraWeb为Web开发提供了一种高效、直观的方式,尤其适合有Delphi开发背景的程序员快速进入Web领域。通过深入学习和实践,开发者可以充分利用IntraWeb的优势,开发出高性能、易维护的Web应用程序。

    FLEX企业应用开发实战.part1

     3.2.5 域及跨域访问  3.3 Flex Module  3.3.1 创建模块  3.3.2 模块的编辑与编译  3.3.3 模块文件的加载  3.3.4 主应用和模块的交互  3.4 Flex库文件SWC  3.5 Flex编译模式、链接模式与RSL  3.5.1...

    .net Core,Vue前后端分离Demo,新增跨域访问,vuex管理token,.net core 新增JWT

    跨域访问是Web开发中的常见问题,由于浏览器的安全策略,不同源的请求会被阻止。项目中通过`.NET Core`的CORS(Cross-Origin Resource Sharing)中间件,允许指定的源进行跨域请求,确保前端应用能够正确地与后端API...

    Java Web典型模块与项目实战大全源代码10-12

    《Java Web典型模块与项目实战大全源代码10-12》是常建功老师针对Java Web开发领域的一份珍贵教学资源。这份压缩包包含了Java Web开发中的关键模块及其实战项目的源代码,主要覆盖了第10至12部分的内容。由于文件...

    Asp.Net2.0网站开发实战

    《Asp.Net2.0网站开发实战》是一个深入学习Asp.Net2.0技术的实践...总的来说,《Asp.Net2.0网站开发实战》是一份全面且实用的学习资源,对于希望在Web开发领域深入学习或提升技能的开发者来说,无疑是一个宝贵的工具。

    OA项目实战,ssh+dwr开发的一个好项目

    【OA项目实战,SSH+DWR开发的一个好项目】 OA(Office Automation)系统是企业信息化建设中的重要组成部分,主要用于提高工作效率,实现办公自动化。在这个项目中,SSH(Struts2、Spring、Hibernate)和DWR(Direct...

    SignalR跨域

    跨域问题在 Web 开发中是一个常见挑战,特别是当涉及到 SignalR 的实时通信时。下面将详细解释 SignalR 跨域的概念、原因、解决方法以及实际应用。 一、SignalR 跨域简介 跨域是指浏览器出于安全考虑,不允许不同源...

    《Web前端开发技术》授课资料包(1).rar

    《Web前端开发技术》授课资料包(1).rar是一个包含丰富资源的压缩文件,专为学习Web前端开发的学员提供。这个资料包可能涵盖了前端开发的各个方面,旨在帮助初学者和有一定经验的开发者深入理解并掌握Web前端的核心...

    JavaScript跨域总结

    在Web开发中,由于浏览器的同源策略限制,JavaScript代码通常只能访问与自身页面协议、域名和端口完全相同的资源。这种安全机制是为了防止恶意脚本通过跨站点请求获取用户敏感信息。然而,随着互联网的发展,开发者...

    Flex企业应用开发实战源代码

    3.2.5 域及跨域访问 99 3.3 Flex Module 101 3.3.1 创建模块 102 3.3.2 模块的编辑与编译 104 3.3.3 模块文件的加载 104 3.3.4 主应用和模块的交互 107 3.4 Flex库文件SWC 107 3.5 Flex编译模式、链接模式与...

    实现跨域例子内附说明.zip

    跨域资源共享(CORS,Cross-...总结,跨域请求是现代Web开发中常见的需求,CORS提供了一种安全可控的方式来实现这一功能。通过理解其原理和实践方法,开发者能够有效地管理跨域资源,提升应用的灵活性和用户体验。

    VUE + nodejs实战

    - **跨域问题**:通过Node.js设置CORS策略,解决前后端跨域访问限制。 - **部署**:Node.js应用可以通过PM2等进程管理工具部署到服务器,Vue应用通常构建为静态资源部署到Nginx或Apache等服务器。 4. **CSS与Vue....

    Vue+Spring Boot前后端分离开发实战源码和ppt.zip

    - **跨域资源共享(CORS)**:处理前端跨域请求的安全策略,确保前端可以访问后端资源。 - **状态管理**:通过状态码和错误信息,前后端进行状态同步和错误处理。 4. **实战源码分析**: - **项目结构**:理解项目...

    SpringBoot实战项目(人力资源管理系统),前后端分离开发,SpringBoot+Vue

    3. **Spring Boot Starter**:一系列预配置的启动器,如`spring-boot-starter-web`用于Web开发,`spring-boot-starter-data-jpa`用于数据访问,这些启动器让开发者能够快速接入相关功能。 4. **Actuator**:提供了...

    完全跨域的单点登录 完全跨域的单点登录

    在Java开发环境中,实现完全跨域的单点登录是一项重要的技术挑战,涉及到多个领域的知识,包括HTTP协议、Cookie管理、会话跟踪、授权机制等。本篇文章将深入探讨这一主题,并基于给定的标签"SSO"、"Java"和"单点登陆...

Global site tag (gtag.js) - Google Analytics