Ajax学习:同源策略(与跨域相关)ajax默认遵循同源策略

news/2024/5/5 1:03:20/文章来源:https://blog.csdn.net/weixin_47295886/article/details/128142620

同源策略:是浏览器的一种安全策略

同源意味着:协议、域名、端口号必须相同

违背同源便是跨域


当前网页的url和ajax请求的目标资源的url必须协议、域名、端口号必须相同

比如:当前网页:协议http 域名 a.com  端口号8000

            目标请求:协议http 域名 a.com  端口号8000


同源表示:同一个来源

如果 a.com -->b.com发请求是跨域

        http---->https发请求是跨域

        800--->799发请求是跨域

 性能是有限的,服务器增加,所以便会出现跨域


 服务器部分:
 

const express=require('express')const app=express();
app.get('/home',function(requset,response){//设置响应头 名称 值----设置允许跨域// response.setHeader('Access-Control-Allow-Origin','*');//设置响应体response.sendFile(__dirname+'/同源策略.html');//绝对路径
})
app.get('/data',function(requset,response){//设置响应头 名称 值----设置允许跨域// response.setHeader('Access-Control-Allow-Origin','*');//设置响应体response.send('用户数据');//绝对路径
})
app.listen(9000,()=>{console.log('9000启动成功')
})

 前端部分

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><h2>主页面</h2><button>点击获取用户数据</button><script>const btn=document.querySelector('button');btn.onclick=function() {const xhr=new XMLHttpRequest();//因为满足同源策略,所以url可以简写//浏览器回自动加上xhr.open('GET','/data');xhr.send();xhr.onreadystatechange=function(){if(xhr.readyState===4){if(xhr.status<300&&xhr.status>=200){console.log(xhr.response)}}}}</script>
</body>
</html>

使用url与服务器响应信息(是同源的),再网页中button发送是ajax请求(由于当前网页与按钮访问的协议 域名端口都一致 满足同源策略 所以可以省略url部分)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_229630.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[附源码]JAVA毕业设计计算机在线学习管理系统-(系统+LW)

[附源码]JAVA毕业设计计算机在线学习管理系统-&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项…

阿里云安装mysql、nginx、redis

目录 安装mysql 安装nginx ​编辑安装redis 先看一下系统基本信息 安装mysql rpm -qa | grep mariadb 卸载mariadb rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 wget -i http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y install my…

【D3.js】1.17-给 D3 元素添加标签

title: 【D3.js】1.17-给 D3 元素添加标签 date: 2022-12-02 14:35 tags: [JavaScript,CSS,HTML,D3.js,SVG] 为了让图更易懂&#xff0c;我们给每一个rect添加上标签。 一、学习目标 如何添加text元素&#xff1f; .append(“text”) 如何设置text元素的值&#xff1f; .attr(…

在Linux中部署运维监控系统WGCLOUD

在公网IP为x.x.x.x&#xff0c;安装CentOS8或Alibaba Cloud Linux 3.2104 LTS 64位系统的服务器&#xff08;服务端&#xff09;上&#xff0c;先安装jdk8&#xff0c;然后安装数据库mariadb-10.5&#xff0c;最后进行server安装。 在需要监控的安装CentOS8或Alibaba Cloud L…

[附源码]计算机毕业设计springboot疫情网课管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

并发编程详解: 十三个工具类, 十大设计模式, 从理论基础到案例实战

前言 对于 Java 程序员而言&#xff0c;熟练掌握并发编程是判断其卓越性的重要标准之一。因为并发编程是 Java 语言中最晦涩的知识点&#xff0c;它涉及操作系统&#xff0c;内存&#xff0c;CPU&#xff0c;编程语言等的基本功&#xff0c;并且还测试了程序员的内功。 那么如…

Ubtunu排查磁盘空间是否已满—并清理的方式

项目场景&#xff1a; 最近使用nodejs开发的后端项目部署到Ubtunu服务器后接口无法访问了&#xff0c;接口也调用不通&#xff0c;NGINX报502错误。 问题描述 使用远程连接工具传文件也是无法上传&#xff0c;提示找不到文件&#xff0c;SCP命令也无法上传。 scp传文件报错&…

【BOOST C++ 19 应用库】(6)序列数据封装和优化

一、说明 用于优化的包装函数&#xff1a;本节介绍包装函数以优化序列化过程。这些函数标记对象以允许 Boost.Serialization 应用某些优化技术。 二、示范和代码 示例 64.14。在没有包装函数的情况下序列化数组 #include <boost/archive/text_oarchive.hpp> #include &…

我的数学学习回忆录——一个数学爱好者的反思(二)

早点关注我&#xff0c;精彩不错过&#xff01;上回说到我在数学学习过程中走的种种弯路&#xff0c;相关内容请戳&#xff1a;我的数学学习回忆录——一个数学爱好者的反思&#xff08;一&#xff09;那在这样坎坷的旅程中&#xff0c;有没有给我带来意外惊喜&#xff0c;是不…

创建Hibernate项目与实现一个例子(idea版)

文章目录创建Hibernate项目一、前提准备二、创建项目三、实现一个例子创建Hibernate项目 一、前提准备 准备Hibernate开发必需的jar包。准备数据库的驱动jar包。准备junit.jar包。 这些包你可以去官网下载&#xff0c;也可以下载我已下载好的(本人目前使用的)。 https://pan…

Spring-Cloud-Zipkin-05

前言 1、链路追踪由来&#xff1a;在微服务框架中&#xff0c;一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果&#xff0c;每一个请求都会开成一条复杂的分布式服务调用链路&#xff0c;链路中的任何一环出现高延时或错误都会引导起…

【博客550】k8s乐观锁机制:控制并发请求与数据一致性

k8s乐观锁机制&#xff1a;控制并发请求与数据一致性 1、乐观锁与悲观锁 悲观锁 悲观并发控制&#xff08;又名“悲观锁”&#xff0c;Pessimistic Concurrency Control&#xff0c;缩写“PCC”&#xff09;是一种并发控制的方法。它可以阻止一个事务以影响其他用户的方式来修…

分布滞后线性和非线性模型(DLNM)分析空气污染(臭氧)、温度对死亡率时间序列数据的影响...

全文下载链接 http://tecdat.cn/?p23947 分布滞后非线性模型&#xff08;DLNM&#xff09;表示一个建模框架&#xff0c;可以灵活地描述在时间序列数据中显示潜在非线性和滞后影响的关联。该方法论基于交叉基的定义&#xff0c;交叉基是由两组基础函数的组合表示的二维函数空间…

【STM32学习(1)】详解STM32时钟体系

一、8051和stm32时钟体系结构区别 HSE&#xff1a;外部高速的振荡时钟&#xff08;8MHZ&#xff09; HSI&#xff1a;内部高速的振荡时钟&#xff08;16MHZ&#xff09; LSI&#xff1a;内部低速的振荡时钟&#xff08;32KHZ&#xff09; LSK&#xff1a;外部低速的振荡时钟&a…

开发一个简单的http模板之序章

流程 1.当通过开发HTTP模块来实现产品功能时&#xff0c;是可以完全享用Nginx的优秀设计所带来的、 与官方模块相同的高并发特性的。不过&#xff0c;如何开发一个充满异步调用、无阻塞的HTTP模块 呢2. 需要把程序嵌入到Nginx中&#xff0c;也就是说&#xff0c;最终编译出的二…

C++——隐式类型转换

隐式类型转换&#xff08;构造函数的隐式调用&#xff09; 先看一下隐式类型转换如何发生吧&#xff1a; #include <iostream> using namespace std;class point {public:int x,y;point(int x0, int y0):x(x),y(y) {} }void displayPoint(const point &p) {cout &l…

Clock and Jitter

1、Jitter定义 定义1&#xff08;SONET规范&#xff09;&#xff1a;抖动可以定义为数字信号在重要时点上偏离理想时间位置的短期变化。 2、Total Jitter表征方式 2.1、周期抖动&#xff08;Period Jitter&#xff09;&#xff0c;与理想时钟无关&#xff0c;不累积 Period …

(AVL)平衡二叉树

还是照旧&#xff0c;本篇主要讲一下代码实现&#xff0c;AVL相关的定义什么的这里不多赘述。 AVL树就是为了解决bst树出现了“线性”的问题&#xff0c;而发明的。什么是线性的就是一棵bst树全都只有左子树或者全都只有右子树&#xff0c;能想象来吧。 目录 LL型调整(左旋) …

axios.defaults.baseURL的三种配置方法

axios.defaults.baseURL的三种配置方法目录概述需求&#xff1a;设计思路实现思路分析1.少2.2.动态获取请求地址3.3.采用配置文件参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,m…

Spring学习:二、Bean的管理

4. Bean的管理 ​ Spring的基本Bean管理包括Bean配置&#xff0c;Bean实例化和Bean的依赖注入。这些管理可以通过手工编码的方式把每个Bean注册到容器中&#xff0c;也可以通过properties文件和xml文件配置Bean和Bean之间的依赖关系。通常我们的配置方式是XML作为配置文件。 …