您当前的位置: 首页 >  http

Dream丶Killer

暂无认证

  • 4浏览

    0关注

    188博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Access to XMLHttpRequest at *** from origin ‘***‘ has been blocked by CORS policy: Response to...

Dream丶Killer 发布时间:2021-04-30 11:10:00 ,浏览量:4

Access to XMLHttpRequest at *** from origin ‘null’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource

报错截图: 在这里插入图片描述

报错原因:

浏览器的同源策略约定我们只能在同源的情况下(即协议,域名,端口相同),才能成功请求数据,这里的目的url和http://localhost:3000/是非同源的,所以浏览器报错,告诉我们跨域了。

解决方式:

当遇到这个问题时,我是使用了中间件代理跨域(基于react),通过启用一个代理服务器,来接收目的接口提供的数据。

1、手动安装 http-proxy-middleware中间件

npm i http-proxy-middleware

2、在根目录创建一个setupProxy.js文件

const proxy = require('http-proxy-middleware')

module.exports = function(app){
    app.use(
        proxy("/webapi", {
            target: "https://name.52byte.com/",//目标地址
            changeOrigin: true //设置成true:发送请求头中host会设置成target 
        })

    )
}

3、利用axios发送请求

axios.post(`/webapi/webbrowser/GetEnglishNameListForWeb`, {
                realName: "",
                 gender: "male",
                 initialLetter: "", 
                 spell: "0", 
                 pronounce: "0", 
                 popularity: "1", 
                 pageIndex: 0
            }).then((response) => {
                // handle success
                console.log(response.data)
            }).catch(error => {
                // handle error
                console.log(error)
            }).then(() => {
                // always executed
            });

4、最后,获取数据成功啦在这里插入图片描述

♥看都看到这里来啦,点个赞再走吧~♥

在这里插入图片描述

关注
打赏
1655344294
查看更多评论
立即登录/注册

微信扫码登录

0.0481s