跨react域问题怎么解决

react跨域问题的解决方法:首先在【package.json】中加入【proxy”: “http://localhost:8000】;然后页面中的请求【fetch(‘/api/userdata/’)】会转发到proxy中的地址。

跨react域问题怎么解决

react跨域问题的解决方法:

一、最简单的操作

在package.json中加入”proxy”: “http://localhost:8000”

然后你页面中的请求fetch(‘/api/userdata/’)就会转发到proxy中的地址

也就是真实的请求是http://0.0.2.89:7300/api/userdata/,而且也不会有跨域问题

因为在浏览器看来,你只是发了fetch(‘/api/userdata/’),没有跨域问题

二、添加多个代理

在package.json中加入

"proxy": {"/api": {"target": "http://localhost:8000","changeOrgin": true},"/app": {"target": "http://localhost:8001","changeOrgin": true}},

登录后复制

使用方法

axios.post('/api/users').then(res =>{console.log(res)})

登录后复制

但是当重新执行npm start时会报错,说”proxy”的值应该是一个字符串类型,而不能是Object。

其原因是由于react-scripts模块的版本过高,需要删除到原目录下node_modules中的react-scripts文件夹,安装低版本

npm install react-script@1.1.1 –save

的确跨域问题可以解决了,但是又出现了新的问题,我在项目中使用了sass,当把react-scripts改为低版本后并不支持对sass的解析,如果要想支持sass的话,需要到 node_modules/react-scripts/config中进行配置,但是并不推荐你这样做。

三、最佳推荐

下载 http-proxy-middleware

npm i http-proxy-middleware –save

创建 src/setupProxy.js

const proxy = require('http-proxy-middleware')module.exports = function(app) {// /api 表示代理路径// target 表示目标服务器的地址app.use(proxy('/api', {// http://localhost:4000/ 地址只是示例,实际地址以项目为准target: 'http://localhost:4000',// 跨域时一般都设置该值 为 truechangeOrigin: true,// 重写接口路由pathRewrite: {'^/api': '' // 这样处理后,最终得到的接口路径为: http://localhost:8080/xxx}}))}

登录后复制

相关免费学习推荐:JavaScript(视频)

以上就是跨react域问题怎么解决的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2724072.html

(0)
上一篇 2025年3月7日 23:10:41
下一篇 2025年2月27日 09:12:26

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 用react怎么实现收藏功能

    用react实现收藏功能的方法:通过设置iconStatus取反来实现点击收藏,代码为【const [icoStatus, setIcoStatus] = useState(true)】。 用react实现收藏功能的方法: 1、通过设置ic…

    2025年3月7日
    200
  • react中props和state的区别什么

    react中props和state的区别:1、props主要是用于组件之间传递参数,获取组件的属性值,对于外界组件的属性值,无法直接修改,它是只读的;2、state主要用于组件更新控制,如果想重新渲染或更新组件,只需要修改state即可。 …

    2025年3月7日
    200
  • react中portal是什么意思

    react中portal是提供了一种很好的将子节点渲染到父组件外部DOM层级中的DOM节点中的方式,语法为【ReactDOM.createPortal(child, container)】。 Portals 提供了一种很好的将子节点渲染到父…

    2025年3月7日
    200
  • react如何阻止冒泡失败

    react阻止冒泡失败的方法:1、在没有涉及到原生事件注册只有react事件时,用【e.stopPropagation()】阻止冒泡;2、需要用到【e.nativeEvent.stopImmediatePropagation()】方法。 r…

    2025年3月7日
    200
  • react中元素和组件的区别是什么

    react中元素和组件的区别:1、元素数据结构是普通对象,而组件数据结构是类或纯函数;2、在JSX中,被元素嵌套的元素会以属性children的方式传入该元素的组件。 react中元素和组件的区别: 1、React 元素 React 元素(…

    2025年3月7日
    200
  • react中如何引进图片

    react中引进图片的方法:1、方式一【import tsIcon from ‘../images/typescript.jpeg’;】;2、方式二【const tsIcon = require( ‘./…

    2025年3月7日
    200
  • react中state和props的区别有哪些?

    区别:props是传递给组件的(类似于函数的形参),而state是在组件内部被组件自己管理的(类似于在一个函数内声明的变量)。state是组件自己管理数据,控制自己的状态,可变;props是外部传入的数据参数,不可变。 本教程操作环境:Wi…

    2025年3月7日
    200
  • react中如何导入图片

    react中导入图片的方法:1、通过import方式导入,代码为【import logo from ‘./asset/logo.jpg’】;2、使用require方法,代码为【 本教程操作环境:windows10、r…

    2025年3月7日
    200
  • jquery和React的区别是什么?

    区别:1、本质上,React是一个UI库,而JQuery是一个工具库或者说是插件库。2、对Dom操作的不同,React提供了一整套的虚拟Dom,所有的操作都在虚拟的Dom上而并非真实的Dom;而Jquery操作的是真实Dom。 相关推荐:《…

    2025年3月7日 编程技术
    200
  • react如何写点击事件

    react写点击事件的方法:1、使用bind绑定,代码为【this.clicked.bind(this,”hello world”)】;2、使用箭头函数,代码为【onClick={(event)=>this.c…

    2025年3月7日
    200

发表回复

登录后才能评论