首页 > 其他分享 >前端-2

前端-2

时间:2024-12-31 14:52:40浏览次数:1  
标签:axios http 前端 访问 import 允许 config

elementui
简介
网站快速成型工具,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。
安装

npm i element-ui -S(--save)
    i=install  安装    
   -S =--save 安装后的配置保存到package.json中

配置
https://element.eleme.cn/#/zh-CN/component/quickstart

import Vue from 'vue'
//引入elementui js和css
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue'
import router from './router'
import store from './store'


Vue.config.productionTip = false
//让elementui和Vue结合使用
Vue.use(ElementUI);
new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

axios
简介
易用、简洁且高效的http库,是Ajax的实现框架。Axios 是一个基于 promise(原生JS底层的异步请求库) 的 HTTP 库,可以用在浏览器和 node.js 中
安装
npm install axios --save
配置
http://www.axios-js.com/zh-cn/docs/#%E5%85%A8%E5%B1%80%E7%9A%84-axios-%E9%BB%98%E8%AE%A4%E5%80%BC

//引入axios
import axios from 'axios'

//设置所有axios请求的基本URL
axios.defaults.baseURL = 'http://localhost:18888';

//设置全局可用变量$http  =axios  以后使用,可以不再写axios 可以写 $http
Vue.prototype.$http = axios

跨域及解决跨域
简介
为了防止不同页面的JS相互访问数据,在任何浏览器的底层都有同源策略(Same-Origin-Policy),同源就是在页面调用数据时必须同源,否则不能调用。同源指一个页面请求协议,IP和端口号必须一致,否则就是不同源。不同调用报错:No 'Access-Control-Allow-Origin' header is present on the requested resource
http://localhost:8080/#/dept
http://localhost:18888/dept/queryByPage
请求协议:http https ftp file:等等
IP: 主机IP或者域名或者名称
端口号: http默认80 https默认443 还可以随便自定义
想让不同源的网站相互访问就是跨域。
跨域常见方式:jsonp cors 代理等等
nginx代理实例:
http://192.168.xxx.21:80
http://192.168.xxx.31:8080
cors简介
CORS(Cross Origin Resource Sharing)跨源头资源共享,是一种机制,它使用额外的HTTP头来告诉浏览器允许一个网页从另一个域(不同于该网页所在的域)请求资源。
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
springboot如何实现跨域
理论
https://spring.io/blog/2015/06/08/cors-support-in-spring-framework
四种实现
方式上加注解@CrossOrigin(不推荐,麻烦)

/**
     * 分页查询
     *
     * @param page 分页对象
     * @return 查询结果
     */
   // @CrossOrigin
    @PostMapping("queryByPage")
    public Result queryByPage(@RequestBody Page<Dept> page) {
        return BaseUtil.success(this.deptService.queryByPage(page));
    }

类上加注解@CrossOrigin(不推荐,麻烦)

@RestController
//@CrossOrigin
@RequestMapping("dept")
@Log4j2
public class DeptController {

使用过滤器(推荐)

@Configuration
public class MyConfiguration {

	@Bean
	public FilterRegistrationBean corsFilter() {
		UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
		CorsConfiguration config = new CorsConfiguration();
		config.setAllowCredentials(true);
		config.addAllowedOrigin("http://domain1.com");
		config.addAllowedHeader("*");
		config.addAllowedMethod("*");
		source.registerCorsConfiguration("/**", config);
		FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
		bean.setOrder(0);
		return bean;
	}
}

实现WebMvcConfigurer(推荐)

package com.aaa.sbm.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * @FileName: CorsConfig
 * @Description:
 * @Author: zhz
 * @CreateTime: 2024/12/16 11:35
 * @Version: 1.0.0
 */
@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {

        registry.addMapping("/**") //添加映射  ** 代表所有映射   http://localhost:18888/
                //.allowedOrigins("http://localhost:8080/")  //允许哪个源访问我 可以固定写一个
                //.allowedOrigins("*")  //允许哪个源访问我  * 所有域都可以访问
                .allowedOriginPatterns("*") //* 所有域都可以访问
                .allowedMethods("PUT", "DELETE","POST","GET","OPTIONS") //允许哪种类型的方法访问我
                //.allowedMethods("*") //允许哪种类型的方法访问我  * 所有请求方式都可以
                //.allowedHeaders("accept", "accept-encoding", "header3")  //允许头部带什么参数
                .allowedHeaders("*")  //允许头部带什么参数
                //.exposedHeaders("header1", "header2") //排除参数
                .allowCredentials(true)  //允许请求中携带Cookie  如果写成true上面allowedOrigins不可以使用*
                .maxAge(3600); //如果是异步请求,会先发试探性请求OPTIONS ,看当前网站是否允许我访问  如果允许,在3600秒之内我就不再检测,以后直接发请求  等过了3600后,再检测一次。。
    }
}

代码

package com.aaa.sbm.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * @FileName: CorsConfig
 * @Description:
 * @Author: zhz
 * @CreateTime: 2024/12/16 11:35
 * @Version: 1.0.0
 */
@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {

        registry.addMapping("/**") //添加映射  ** 代表所有映射   http://localhost:18888/
                //.allowedOrigins("http://localhost:8080/")  //允许哪个源访问我 可以固定写一个
                //.allowedOrigins("*")  //允许哪个源访问我  * 所有域都可以访问
                .allowedOriginPatterns("*") //* 所有域都可以访问
                .allowedMethods("PUT", "DELETE","POST","GET","OPTIONS") //允许哪种类型的方法访问我
                //.allowedMethods("*") //允许哪种类型的方法访问我  * 所有请求方式都可以
                //.allowedHeaders("accept", "accept-encoding", "header3")  //允许头部带什么参数
                .allowedHeaders("*")  //允许头部带什么参数
                //.exposedHeaders("header1", "header2") //排除参数
                .allowCredentials(true)  //允许请求中携带Cookie  如果写成true上面allowedOrigins不可以使用*
                .maxAge(3600); //如果是异步请求,会先发试探性请求OPTIONS ,看当前网站是否允许我访问  如果允许,在3600秒之内我就不再检测,以后直接发请求  等过了3600后,再检测一次。。
    }
}

结合后端工程CRUD
查询代码

<template>
    <!--有且只能有一个根标签,是什么都可以-->
    <div>
        <el-table
        :data="tableData"
        style="width: 100%">
        <el-table-column
            prop="deptNo"
            label="编号"
            width="180">
        </el-table-column>
        <el-table-column
            prop="dname"
            label="名称"
            width="180">
        </el-table-column>
        <el-table-column
            prop="loc"
            label="位置">
        </el-table-column>
        <el-table-column label="操作">
      <template slot-scope="scope">
        <el-button
          size="mini"
          @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
        <el-button
          size="mini"
          type="danger"
          @click="handleDelete(scope.$index, scope.row)">删除</el-button>
      </template>
    </el-table-column>
        </el-table>    
    </div>
    <!-- <div></div>
    <span></span> -->
</template>
<script>
export default {
    data(){
       return {
        tableData: []
       }
    },
    created:function () {
       // var _this = this;
        this.$http.post('/dept/queryByPage', {
            "pageNo": 1,
            "pageSize": 5
            })
        .then(  (response) =>{
            console.log(response);
            console.log(JSON.stringify(response));
            this.tableData=response.data.data.list;
        })
        .catch(function (error) {
            console.log(error);
        }); 
    },
    methods:{
        
    }
}
</script>
<style>
   
</style>  

标签:axios,http,前端,访问,import,允许,config
From: https://www.cnblogs.com/xiaomubupi/p/18644011

相关文章

  • 前端-1
    nodejs简介https://nodejs.cn/Node.js是一个开源的、跨平台的JavaScript运行时环境。让前端像后端项目在tomcat中一样运行访问的技术(前端工程化)。作者:RyanDahl,基于谷歌V8引擎和Javascript,开发nodejs。测试是否安装成功windows键+r输入cmd回车node-v或者nod......
  • 前端埋点时,为什么使用GIF上报?
    在前端开发中,使用GIF进行埋点上报的原因主要有以下几点:防止跨域问题:前端监控的请求经常会遇到跨域问题,这可能导致浏览器拦截并报错,从而影响监控的准确性和可用性。使用GIF图片作为上报方式可以有效避免这个问题,因为图片的src属性并不会受到跨域限制,可以正常发起请求。避免阻......
  • 要开发一个前端性能监控的工具,需要上报哪些内容?
    在开发一个前端性能监控工具时,需要上报的内容主要包括以下几个方面:页面加载性能数据:页面加载时间:记录页面从开始加载到完全加载完成所需的总时间。DNS解析时间:记录DNS查询和解析所需的时间。TCP连接时间:建立TCP连接所需的时间。请求响应时间:从发出请求到接收到响应所需的......
  • 前端如何实现对讲功能?说说你的思路
    实现前端对讲功能通常涉及到实时音频传输和信令控制。以下是一个基本的实现思路:1.技术选型WebRTC:WebRTC是一个支持网页浏览器进行实时语音对话(RTC)或视频对话的技术。它允许网页应用进行点对点(Peer-to-Peer)的连接,无需透过服务器。WebSocket:用于在客户端和服务器之间建立持久......
  • 前端针对图片性能优化都有哪些方法?
    前端针对图片性能优化的方法主要包括以下几个方面:选择合适的图片格式:根据不同的使用场景选择最合适的图片格式。例如,JPEG适用于照片和复杂图像,PNG适用于需要透明背景的图片,GIF适用于简单动画,SVG适用于矢量图形,而WebP格式则能在保持图片质量的同时大幅减小文件大小。压缩......
  • 说说你对前端数据回显的理解
    前端数据回显是指在前端开发中,当用户进行操作(如提交表单、查询数据等)后,将后端返回的数据展示在前端页面的过程。这个过程通常涉及到前后端数据的交互、前端页面的渲染以及用户体验的优化。以下是对前端数据回显的详细理解:数据交互:前端数据回显首先涉及到前后端之间的数据交互......
  • 前端如何高性能渲染十万条数据?有哪些方法?
    在前端开发中,高性能渲染大量数据(如十万条数据)是一个常见的挑战。以下是一些方法和策略,可以帮助前端开发者实现这一目标:分批渲染(IncrementalRendering):使用setTimeout或requestAnimationFrame进行分批渲染。将数据分成小块,并在每个时间片或动画帧中逐一渲染,以减轻浏览器的即......
  • 【网页设计期末/课程设计】类Steam的游戏商城(纯前端)
    代写C语言、C++、Java、Python、HTML、JavaScript、vue、MySQL相关编程作业,长期接单,信誉有保证,如有任何问题或需要请加文章末尾推广QQ。在售模板目录:点击这里跳转本文资源:1.题目要求题目描述编写HTML项目,要求至少包含五个页面,至少实现导航栏、轮播图、下拉菜单以及......
  • 记录---前端实现签字效果+合同展示
    ......
  • 前端开发vue开发调试源代码
    vue开发调试源代码1.main.js添加Vue.config.devtools=true//Vue.config.productionTip=falseVue.config.devtools=true2.vue.config.js添加devtool:'source-map'module.exports={ productionSourceMap:true, configureWebpack:{ devtool:'source-......