夜猫子的知识栈 夜猫子的知识栈
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《Web Api》
    • 《ES6教程》
    • 《Vue》
    • 《React》
    • 《TypeScript》
    • 《Git》
    • 《Uniapp》
    • 小程序笔记
    • 《Electron》
    • JS设计模式总结
  • 《前端架构》

    • 《微前端》
    • 《权限控制》
    • monorepo
  • 全栈项目

    • 任务管理日历
    • 无代码平台
    • 图书管理系统
  • HTML
  • CSS
  • Nodejs
  • Midway
  • Nest
  • MySql
  • 其他
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • Ajax
  • Vite
  • Vitest
  • Nuxt
  • UI库文章
  • Docker
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

夜猫子

前端练习生
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《Web Api》
    • 《ES6教程》
    • 《Vue》
    • 《React》
    • 《TypeScript》
    • 《Git》
    • 《Uniapp》
    • 小程序笔记
    • 《Electron》
    • JS设计模式总结
  • 《前端架构》

    • 《微前端》
    • 《权限控制》
    • monorepo
  • 全栈项目

    • 任务管理日历
    • 无代码平台
    • 图书管理系统
  • HTML
  • CSS
  • Nodejs
  • Midway
  • Nest
  • MySql
  • 其他
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • Ajax
  • Vite
  • Vitest
  • Nuxt
  • UI库文章
  • Docker
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 技术文档

  • GitHub技巧

  • 博客搭建

  • Ajax

    • ajax
    • ajax基础
    • ajax关于同源
    • 原生jsonp
    • ajax跨域(cors)
    • ajax跨域(jsonp)
    • ajax响应JSON请求
    • axios
    • promise的fetch方法
    • 请求终止
    • useRequest
    • 指数退避延时loading
  • Vite

  • Vitest

  • Nuxt

  • UI库文章

  • Docker

  • 技术
  • Ajax
夜猫子
2022-06-26

ajax关于同源

同源策略 即协议,域名,端口号,必须完全相同。ajax默认遵循这一协议。违背这一策略即跨域。

因为单台服务器性能有限所以经常跨域

ajax同源案例 网页URL和请求资源的URL一致 响应设置本地HTML页面

const express=require('express');
const app=express();
app.get('/home',(request,response)=>{//该网页请求该网页的资源,所以同源
    response.sendFile(__dirname+'/ajaxtest.html');//_dirname表示该js文件所在绝对路径
});
app.get('/get',(request,response)=>{
    response.send('返回数据');//_dirname表示该js文件所在绝对路径
});
app.listen(9000,()=>{
    console.log('9000端口启动中')
})
1
2
3
4
5
6
7
8
9
10
11

返回的html页面,即用作同源链接

<body>
    <div>响应窗口</div>
    <button>获取返回数据</button>
    <script>
        const btn = document.querySelector('button');
        let odiv =document.querySelector('div');
        btn.onclick = function () {//该网页用作同源链接,
            // 注意必须用http.127.0.0的网页链接打开才算同源,右键打开不同源
            const xhr = new XMLHttpRequest();
            xhr.open('GET', '/get');//因为同源所以路径可以简写
            xhr.send();
            xhr.onreadystatechange = function () {
                if (xhr.readyState === 4) {
                    if (xhr.status >= 200 && xhr.status < 300) {
                        odiv.innerHTML = xhr.response
                    }
                }
            }
        }
    </script>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
编辑 (opens new window)
上次更新: 2023/7/11 18:57:41
ajax基础
原生jsonp

← ajax基础 原生jsonp→

最近更新
01
IoC 解决了什么痛点问题?
03-10
02
如何调试 Nest 项目
03-10
03
Provider注入对象
03-10
更多文章>
Copyright © 2019-2025 Study | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式