当前位置: 首页 > wzjs >正文

国内可以做网页的网站百度推广在哪里能看到

国内可以做网页的网站,百度推广在哪里能看到,wordpress博客的搭建,美橙互联网站建设1. 什么是跨域请求? 简单来说:当你的 前端网页(例如 http://frontend.com)通过 JavaScript 调用 后端接口(例如 http://backend.com/api)时,如果两者的 域名、端口、协议 中任意一项不同&#…

1. 什么是跨域请求?

  • 简单来说:当你的 前端网页(例如 http://frontend.com)通过 JavaScript 调用 后端接口(例如 http://backend.com/api)时,如果两者的 域名、端口、协议 中任意一项不同,浏览器会认为这是「跨域请求」,默认会阻止请求(出于安全考虑)。
  • 核心限制:这个限制是由浏览器的 同源策略(Same-Origin Policy) 触发的,目的是防止恶意网站窃取用户数据。

2. 什么是「同源」?

  • 同源的定义:两个 URL 的以下三项必须完全相同
    1. 协议(如 http vs https
    2. 域名(如 frontend.com vs api.frontend.com
    3. 端口(如 80 vs 8080
  • 举例
    • 前端:http://localhost:3000
    • 后端:http://localhost:8080
    • 不同源!因为端口不同(3000 vs 8080)。

3. 为什么前后端分离会触发跨域问题?

在前后端分离架构中:

  • 前端:独立部署在一个服务器(如 http://frontend.com:3000)。
  • 后端:独立部署在另一个服务器(如 http://backend.com:8080)。
  • 问题:前端通过 JavaScript(如 fetchaxios)调用后端接口时,浏览器会拦截请求,并报错:
    Access to fetch at 'http://backend.com:8080/api/data' from origin 'http://frontend.com:3000' 
    has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
    

4. 如何解决跨域问题?

方法 1:后端配置 CORS(推荐)
  • CORS(跨域资源共享):后端在响应头中添加允许跨域的规则。
  • 示例(以 Node.js 为例):
    // 后端代码
    const express = require('express');
    const app = express();// 添加 CORS 头
    app.use((req, res, next) => {res.header('Access-Control-Allow-Origin', 'http://frontend.com:3000'); // 允许前端的域名res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');    // 允许的请求方法res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization'); // 允许的请求头next();
    });app.get('/api/data', (req, res) => {res.json({ message: 'Hello from backend!' });
    });app.listen(8080);
    
方法 2:前端代理(开发环境常用)
  • 原理:让前端服务器(如 webpack-dev-server)代理请求到后端,隐藏跨域。
  • 示例(React 项目配置):
    1. package.json 中添加代理:
      {"proxy": "http://backend.com:8080"
      }
      
    2. 前端代码直接请求 /api/data(而不是写完整后端地址):
      fetch('/api/data') // 实际请求会转发到 http://backend.com:8080/api/data.then(response => response.json());
      
方法 3:JSONP(历史方案,已淘汰)
  • 原理:利用 <script> 标签不受跨域限制的特性(仅支持 GET 请求)。
  • 示例
    // 前端
    function handleResponse(data) {console.log(data);
    }
    const script = document.createElement('script');
    script.src = 'http://backend.com:8080/api/data?callback=handleResponse';
    document.body.appendChild(script);// 后端返回
    handleResponse({ message: 'Hello from JSONP!' });
    

5. 实际场景示例

场景 1:前端调用后端 API
  • 前端代码(React):
    // 前端运行在 http://localhost:3000
    fetch('http://localhost:8080/api/data').then(response => response.json()).then(data => console.log(data));
    
  • 后端代码(Spring Boot):
    @RestController
    @CrossOrigin(origins = "http://localhost:3000") // 允许前端跨域
    public class DataController {@GetMapping("/api/data")public String getData() {return "Hello from backend!";}
    }
    
场景 2:浏览器报错示例

如果后端未配置 CORS,浏览器会拦截响应并提示:

Access to fetch at 'http://localhost:8080/api/data' from origin 'http://localhost:3000' 
has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present.

6. 总结

  • 跨域的本质:浏览器为了安全限制不同源的请求。
  • 解决方法
    • 后端配置 CORS(生产环境推荐)。
    • 前端代理(开发环境常用)。
    • JSONP(已淘汰,仅作了解)。
  • 关键点:跨域是浏览器的行为,后端接口本身可以被调用,但需要明确告知浏览器允许跨域。
http://www.dtcms.com/wzjs/215007.html

相关文章:

  • 做网站虚拟主机怎么选择百度指数怎么刷指数方法
  • 什么程序做的网站没有index页面百度电脑版下载官方
  • 如何免费搭建自己的商城搜索引擎优化推广
  • 2008 访问网站提示建设中上海关键词排名优化价格
  • 住房和城乡建设部注册中心网站优化公司哪个好
  • 网站被挂马做js跳转大连seo关键词排名
  • 惠阳营销网站制作seo搜索引擎优化工程师招聘
  • 怎样在百度上做推广网站搜索引擎营销sem包括
  • 中国建设协会官网站国际新闻界期刊
  • 中国空间站合作国家名单百度免费优化
  • 网站建设后需要交费吗不收费的小说网站排名
  • 衡水城乡建设局网站网站seo分析报告
  • 吴江住房和城乡建设局网站宁波seo哪家好快速推广
  • 长沙网站制作安卓嗅探app视频真实地址
  • 做中英文网站公司免费关键词排名优化
  • 专业的外贸网站建设公司百度网站优化公司
  • 做正规网站石家庄谷歌seo公司
  • 非物质文化遗产网站怎么做直播发布会
  • 安陆网站建设西安百度推广网站建设
  • 网站主流服务器语言劳动局免费培训电工
  • 建设机械网站案例企业培训考试app
  • 优化网站服务怎么建网站教程
  • 为什么没人做团购网站百度指数分析报告
  • 做自媒体小视屏哪个网站好百度首页推广
  • 织梦网站图片不显示图片自己怎么制作一个网站
  • 陕西网站建设价格热线怎么推广游戏叫别人玩
  • 公司注册信息怎么查做百度seo
  • 大连房地产网站开发seo专员是什么职位
  • 做政府网站的公司推荐湖南seo
  • 个人备案网站可以做淘宝客吗今日重大新闻