axios 跨域问题_前端跨域产生的原因和解决方法

axios 跨域问题_前端跨域产生的原因和解决方法首先,经典报错:No‘Access-Control-Allow-Origin’解决方法:一、配置main.js此处已经默认请求都添加/api为前缀importVuefrom’vue’importAppfrom’./App.vue’importrouterfrom’./router’importaxiosfrom’axios’import’font-awesome/css/font-awesome.min.css’Vue.config.product

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

首先,经典报错:No ‘Access-Control-Allow-Origin’

解决方法:

一、配置main.js

此处已经默认请求都添加/api为前缀

import Vue from 'vue'
import App from './App.vue'
import router from './router'

import axios from 'axios'
import 'font-awesome/css/font-awesome.min.css'

Vue.config.productionTip = false

axios.defaults.baseURL='/api/'
Vue.prototype.$axios = axios


new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

 二、配置config.index.js

也就是在proxyTable中写上目标地址,主要是已经重写过/api了,之后的axios请求中都不需要再添加/api,也就是

pathRewrite: {

          “^/api”:”

        }

不需要写作下面这样, 会重复导致报错。

pathRewrite: {

          “^/api”:“/api”

        }

正确的index.js代码:

'use strict'
// Template version: 1.3.1
// see http://vuejs-templates.github.io/webpack for documentation.

const path = require('path')

module.exports = {
  dev: {

    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: { // 配置代理,下面是个例子
      '/api': {
        target: 'http://localhost:8880',
        changeOrigin: true,
        ws:true,
        pathRewrite: {
          "^/api":''
        }
      }
    },
 
    // host: 'localhost', // can be overwritten by process.env.HOST
    host: '0.0.0.0', // can be overwritten by process.env.HOST
    port: 3000, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
    autoOpenBrowser: false,
    errorOverlay: true,
    notifyOnErrors: true,
    poll: false,  
    useEslint: true,
 
    showEslintErrorsInOverlay: false,
    devtool: 'cheap-module-eval-source-map',
    cacheBusting: true,
    cssSourceMap: true
  },

  build: {
    // Template for index.html
    index: path.resolve(__dirname, '../dist/index.html'),

    // Paths
    assetsRoot: path.resolve(__dirname, '../dist'),
    assetsSubDirectory: 'static',
   // assetsPublicPath: '/',
    assetsPublicPath: './', // 生产环境打包后静态文件路径修改为相对路径
    /**
     * Source Maps
     */

   // productionSourceMap: true,
    productionSourceMap: process.env.env_config !== 'prod', // 生产环境不需要sourceMap,测试阶段可为true
    // https://webpack.js.org/configuration/devtool/#production
    devtool: '#source-map',
    productionGzip: false,
    productionGzipExtensions: ['js', 'css'],
    bundleAnalyzerReport: process.env.npm_config_report || true
  }
}

三、写请求:get请求为例

axios.get('/student',{//你想访问的资源
  params:{
    name:"邹xx"//因为后端使用findbyname函数
  }
})
.then(function(response){
  console.log(response);
})
.catch(function(error){
  console.log(error);
});

四、顺手又写出404

404 Not Found
请求失败,请求所希望得到的资源未被在服务器上发现

axios 跨域问题_前端跨域产生的原因和解决方法

 没有这个路径,

@RestController

public class Studentcontroller {

    @Autowired
    StudentService studentService;

    @RequestMapping("/deletestudent")
    public void deletebyID(){
//        Optional<StudentEntity> byId = studentRepository.findById(13869L);
//        byId.orElse(null);
//        StudentEntity studentEntity = new StudentEntity();
//        studentEntity.setName("xxb");
//        studentRepository.save(studentEntity);
    }

    @GetMapping("/{name}")
    public StudentEntity findByName(@PathVariable("name") String name){
        return studentService.findByName(name);
    }

查看自己的路径,就是服务器端的问题

GetMapping 注解已经默认封装了@RequestMapping

使用postman测试

数据库中此人确实存在:

axios 跨域问题_前端跨域产生的原因和解决方法

参数理解:

@GetMapping(value = "/service", params = "serviceName=CREATE_PROJECT")

 

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194900.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Mybatis的mapper返回map结果集(超详细讲解)[通俗易懂]

    Mybatis的mapper返回map结果集(超详细讲解)[通俗易懂]通过@MapKey指定map的key值1.在接口中写方法/***@author:xjszsd*@date:2021-12-1316:20*/publicinterfaceIAccountDao{//返回一条记录的map;key就是列名,值就是对应的值Map<String,Object>selectAll(Integerid);/***此处若将map的key的类型改为其他类型,不影响@MapKey给map的ke

    2022年10月4日
    3
  • 群晖docker mysql_Watchtower – 群晖自动更新 Docker 映像与容器

    群晖docker mysql_Watchtower – 群晖自动更新 Docker 映像与容器群晖的Docker功能非常丰富,不过也有不完美的地方,映像和容器更新比较麻烦,比如我的Docker容器运行了十几个,如果通过手动更新非常繁琐,容器还需要重新配置本文就介绍如何通过watchtower全自动更新Docker映像,并保留原始配置重新运行容器。watchtower是一个可以监控正在运行的容器镜像是否有更新的工具,当本地镜像与远端镜像有差异的时候,可以自动使用当前容器的运行参数以新镜像重…

    2025年6月13日
    3
  • 常见开源分布式存储系统

    常见开源分布式存储系统系统整体对比对比说明/文件系统TFSFastDFSMogileFSMooseFSGlusterFSCeph开发语言C++CPerlCCC++开源协议GPLV2GPL

    2022年5月1日
    45
  • Word2Vec原理简单解析

    Word2Vec原理简单解析前言词的向量化就是将自然语言中的词语映射成是一个实数向量,用于对自然语言建模,比如进行情感分析、语义分析等自然语言处理任务。下面介绍比较主流的两种词语向量化的方式: 第一种即One-Hot编码是一种基于词袋(bagofwords)的编码方式。假设词典的长度为N即包含N个词语,并按照顺序依次排列。One-Hot编码将词语表示成长度为N的向量,每一向量分量代表词典中的一个词语,则One-Hot编码的词语向量只有一位分量值为1。假设词语在词典中的位置为k,那么该词语基于One-

    2022年5月13日
    44
  • Qml读写文件_读写文件权限怎么开

    Qml读写文件_读写文件权限怎么开利用qmlRegisterType接口注册一个文件操作类到Qml中,这样Qml就可以实现读写文件。

    2025年6月8日
    5
  • ip地址库 与浏览器的关系

    ip地址库 与浏览器的关系

    2021年10月23日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号