React 学习笔记:网络请求(三)

   1. fetch请求
        1.Fetch API 提供了一个 JavaScript接口,用于访问和操纵HTTP管道的部分,该方法提供了一种简单,合理的方式来跨网络异步获取资源。
        2.语法:
            fetch(url,{
                method:'get',
                headers:{
                    "content-type":"application/x-www-form-urlencoded"
                },
                body:"uname=key&upwd=123",
                credentials:"include, same-origin, omit", //是否允许携带cookie
                mode: 'no-cors, cors, same-origin' // 是否允许cors跨域
            })
            .then(function(data){
                return data.json()  // 解析数据
            })
            .then(function(res){
                console.log(res)    //请求到的结果
            })
    2. 如果是post请求,传递数据格式是:"key=value&key=value"
        {
            user_id:"iwen@qq.com",
            password:"iwen123"
        }
        => "user_id=iwen@qq.com&password=iwen123&verification_code=crfvw"
        nodejs中已经封装好一个组件,querystring
            querstring.parse("user_id=iwen@qq.com&password=iwen123") 
                =>{user_id:"iwen@qq.com",password:"iwen123"}

            querystring.stringify({
                user_id:"iwen@qq.com",
                password:"iwen123"
            })
                =>"user_id=iwen@qq.com&password=iwen123"

    3. 跨域
        解决方法:
            1.cors  :后台配置
            2.jsonp :
                下插件:fetch-jsonp
                使用插件
            3. 代理
            参考地址:https://github.com/facebook/create-react-app/blob/45bc6280d109b7e353ffaa497a0352c9d040c36d/docusaurus/docs/proxying-api-requests-in-development.md

                create-react-app 这个一键搭建环境命令生成的代码也可以实现代理
                fecth('http://localhost:3001/user')
                1.在package.json文件中配置
                    1.配置
                    {
                        "proxy": "http://localhost:3001"
                    }
                    2.重启服务器
                    3.修改fetch请求中的路径
                        fetch('/user')
                        .then(data=>data.json())
                        .then(res=>{
                            console.log(res)
                        })
                
                2.使用中间件
                    1.下载:npm install http-proxy-middleware --save
                    2.在src目录下创建setupProxy.js文件
                    3.在setupProxy.js文件中配置
                        const proxy = require('http-proxy-middleware');

                        module.exports = function(app) {
                            app.use(proxy('/*', { target: 'http://localhost:3001/' }));
                        };
                    4.重启服务器

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值