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

深圳网站建设公司那家好网站建设哪家最好用

深圳网站建设公司那家好,网站建设哪家最好用,宁波seo在线优化方案公司,iis7 部署网站fetch 基本使用跨域处理 fetch 基本使用 在node使用原生ajax发请求:XMLHttpRequest()1.获取xhr对象 2.注册回调函数 3.设置参数,请求头 4.发起连接原生ajax没有带异步处理 promise;原生ajax封装一下,以便重复调用jQuery&#…

  • fetch 基本使用
  • 跨域处理

fetch 基本使用

在node使用原生ajax发请求:XMLHttpRequest()1.获取xhr对象  2.注册回调函数  3.设置参数,请求头  4.发起连接原生ajax没有带异步处理 promise;原生ajax封装一下,以便重复调用jQuery:$ajax()Vue:axiosReact:fetch 已经封装好的ajax,并且带promise处理

src\utils\http.js(请求的封装)

/*http({url:"",method:"",params:{}  |  data:{}    --------get请求params,post请求data}).then(res=>{//在这里直接拿到数据,不想要两次.then才拿到})使用token的内容也封装进去
*/const BASE_URL = '/api'  //基础请求路径  http://172.16.235.16:8888/*封装分析:get请求数据拼接到urllet xxx={id:1,username:"admin",password:123}fetch("http://localhost:8888/login/getuser?id=1&username=admin&password=123")fetch("http://localhost:8888/login/getuser?"+函数())函数(xxx){//对xxx进行处理let result= id=1&username=admin&password=123return  result}
*/
const jsonChangeToUrl=(json)=>{let arr=[];for(let name in json){arr.push(name+"="+json[name]);  //[id=1,name=admin,pwd=123]}return arr.join("&");  //"id=1&name=admin&pwd=123"
}const http=({url,method='get',params={},data={}})=>{if(!url)return; //如果没有传递请求路径,就结束请求const token=sessionStorage.getItem("token") || ""; //发起请求之前先获取tokenlet options={method,headers:{token},// body:JSON.stringify(data)}if(method.toLowerCase()==='post'){options.body=JSON.stringify(data)}return fetch(BASE_URL+url+"?"+jsonChangeToUrl(params),options).then(response => {if(response.status === 401){ //token失效window.location.href="/login";  //浏览器url地址栏}else {return response.json();}})
}export default http;

src\pages\login\index.js (使用fetch发起请求)

import { Button,Form, Input,Radio,message } from 'antd';
import './index.scss'
import {useNavigate} from "react-router-dom";
import http from "../../utils/http"; //二次封装后的fetchconst Login = () => {const navigate = useNavigate();//点击登录时触发const onFinish = values => { //表单提交触发函数,value:表单输入框的值// console.log('Success:', values);  //{id:1,username:admin,type:管理员}//未封装过的fetch发的请求/*fetch("http://localhost:8888/login/getuser?username=201&password=201&type=管理员").then(resp => {console.log(resp)return resp.json()  //resp.json()是将返回的数据转为对象给我用;resp.text()返回的只是单纯的文本时可用}).then(data => {console.log(data)}).catch((err)=>{console.log("错误信息:"+err)})*///自己封装的fetchhttp({url:"/login/getuser",params:values}).then(res => {console.log(res)sessionStorage.setItem("token",res.token)sessionStorage.setItem("user",JSON.stringify(res.data[0]))sessionStorage.setItem("power",JSON.stringify(res.power))if(res.code === 200){message.success("登录成功") //提示气泡navigate("/home");}})};return (<div className={"loginBox"}><Formname="basic"labelCol={{ span: 5 }}wrapperCol={{ span: 16 }}initialValues={{  //初始值roleLgoin:"学生"  //绑在checkbox上的}}onFinish={onFinish}autoComplete="off"><Form.Itemlabel="用户名"name="username"rules={[{ required: true, message: '请输入您的用户名!' }]}><Input /></Form.Item><Form.Itemlabel="密码"name="password"rules={[{ required: true, message: '请输入您的密码名!' }]}><Input.Password /></Form.Item><Form.Item name="roleLgoin" label={null}><Radio.Groupname="radiogroup"options={[{ value: '学生', label: '学生' },{ value: '管理员', label: '管理员' }]}/></Form.Item><Form.Item label={null}><Button type="primary" htmlType="submit">Submit</Button></Form.Item></Form></div>)}export default Login;

跨域处理

1.react配置文件暴露弹出来:git add .git commit -m 'msg'npm run eject2.找到配置文件:webpackDevServer.config.js  //在103行的proxy属性,代理只在开发阶段有用,项目上线要删掉proxy:{'/api':{target: 'http://localhost:8888',changeOrigin: true,pathRewrite: {'^/api': ' '}}}

不建议直接暴露文件的不可逆操作,建议使用 craco (create-react-app config)在 React 脚手架的基础上进行 Webpack 配置。具体内容在Webpack\Vite栏中查看


文章转载自:

http://CXxAOb2V.zcxjg.cn
http://uB7O9YiA.zcxjg.cn
http://6U2KW2RJ.zcxjg.cn
http://j7IAmqVn.zcxjg.cn
http://pRqwChI1.zcxjg.cn
http://d7QUfeWP.zcxjg.cn
http://HZk0ugoC.zcxjg.cn
http://4N8yvtWK.zcxjg.cn
http://bHqrsB57.zcxjg.cn
http://sxov1iQY.zcxjg.cn
http://XWXY0zy2.zcxjg.cn
http://rUGY4GC2.zcxjg.cn
http://YP12LVm2.zcxjg.cn
http://ckmZtbVQ.zcxjg.cn
http://xBI9PEKW.zcxjg.cn
http://Jrzf8yt6.zcxjg.cn
http://8xCCkKrY.zcxjg.cn
http://pYYeqRr9.zcxjg.cn
http://g6KyJwh8.zcxjg.cn
http://6bAZqMwq.zcxjg.cn
http://sFAFCz73.zcxjg.cn
http://QYrEdI5T.zcxjg.cn
http://jK8BMzoH.zcxjg.cn
http://KrHqUybj.zcxjg.cn
http://ghpAB11b.zcxjg.cn
http://9n5TCNmv.zcxjg.cn
http://N0uL3dET.zcxjg.cn
http://GTjd5jpT.zcxjg.cn
http://j7Iu5Zsf.zcxjg.cn
http://ZXZlgiro.zcxjg.cn
http://www.dtcms.com/wzjs/670274.html

相关文章:

  • 为什么要建设双端网站荆门城乡建设局网站
  • 青浦建设网站公司固原市住房和城乡建设厅网站
  • 本地的唐山网站建设时光捕手 wordpress
  • 网站建设怎么放到云空间wordpress 拼音别名
  • 网站制作免费网站建设套餐128000
  • 电脑手机自适应网站的建设wordpress插件ftp
  • 广东手机网站制作公司资阳建设网站
  • 采购网站官网网店美工课程总结
  • 服装企业网站策划书网站备案通过后
  • wordpress建站实例视频聊城seo培训
  • 博物馆网站微信公众号建设河北建设网网站
  • 深圳英文网站建设去哪家asp iis设置网站路径
  • 小说网站制作公司企业网站博客上如何营销
  • 如何提高网站的安全性广州公司注册需要什么条件
  • 网站建设要学多久新河网房屋信息
  • 昆山企业网站建设做网站推广常识题库及答案
  • 中山网站推广词wordpress获取文章简介
  • 自己做的网站百度收索不到传媒大学附近网站建设公司
  • 360搜索引擎首页seo引擎优化专员
  • 网站反链有好处吗网站有竞价的统计怎么加百度统计
  • 郑州网站建设报价表成都十大传媒公司
  • 微信 公众号 微网站开发竞价推广软件
  • 滨海新区商城网站建设官网怎么推广
  • 南翔镇网站建设公司风兰网络
  • 网站搭建设计有口碑的盐城网站建设
  • PHP MYSQL网站开发全程实品质好的英文
  • 网站的推广方案的内容有哪些关键词网站排名软件
  • 网站建设国外无锡网站建设xinysu
  • 阿里企业的网站建设幸福人寿保险公司官方网站电子保单打印
  • 视觉设计网站内蒙古众信国际旅行社电话