Vue3 (V) Details of integrating HTTP library axios

Vue3 (V) Details of integrating HTTP library axios

1. Install axios

npm install [email protected] --save

2. Use of axios

1. Reference axios in the homepage

In Vue3 a new setup initialization method was added, so we start using and testing it here. The sample code is as follows:

<template>
  <a-layout>
    <a-layout-sider width="200" style="background: #fff">
      <a-menu
          mode="inline"
          v-model:selectedKeys="selectedKeys2"
          v-model:openKeys="openKeys"
          :style="{ height: '100%', borderRight: 0 }"
      >
        <a-sub-menu key="sub1">
          <template #title>
                <span>
                  <user-outlined />
                  subnav 1
                </span>
          </template>
          <a-menu-item key="1">option1</a-menu-item>
          <a-menu-item key="2">option2</a-menu-item>
          <a-menu-item key="3">option3</a-menu-item>
          <a-menu-item key="4">option4</a-menu-item>
        </a-sub-menu>
        <a-sub-menu key="sub2">
          <template #title>
                <span>
                  <laptop-outlined />
                  subnav 2
                </span>
          </template>
          <a-menu-item key="5">option5</a-menu-item>
          <a-menu-item key="6">option6</a-menu-item>
          <a-menu-item key="7">option7</a-menu-item>
          <a-menu-item key="8">option8</a-menu-item>
        </a-sub-menu>
        <a-sub-menu key="sub3">
          <template #title>
                <span>
                  <notification-outlined />
                  subnav 3
                </span>
          </template>
          <a-menu-item key="9">option9</a-menu-item>
          <a-menu-item key="10">option10</a-menu-item>
          <a-menu-item key="11">option11</a-menu-item>
          <a-menu-item key="12">option12</a-menu-item>
        </a-sub-menu>
      </a-menu>
    </a-layout-sider>
    <a-layout-content
        :style="{ background: '#fff', padding: '24px', margin: 0, minHeight: '280px' }"
    >
      Content
    </a-layout-content>
  </a-layout>
</template>

<script lang="ts">
import { defineComponent } from 'vue';
import axios from 'axios';

export default defineComponent({
  name: 'Home',
  setup(){
    console.log('set up');
    axios.get("http://localhost:8888/ebook/list?name=spring").then(response =>{
      console.log(response);
    })
  }
});
</script>

2. Restart the service

After starting the service, open the homepage and there is nothing abnormal, as shown below:

but , things are not as good as we thought. Do you dare to open F12 and look at the console?

If you are afraid, I will open it, as shown below:

Ignore the warning part, the red circle part is an error.

Don't panic if you get an error. This is normal. Just solve the problem. It is obviously a cross-domain problem. To put it simply, although it is the same IP, the port is different, which makes it impossible to access.

3. What is cross-domain?

It can be understood that when a page from one IP port ( vue project) accesses resources from another IP port ( springboot request interface), cross-domain access will occur.

4. Solve cross-domain issues

Add the CorsConfig configuration class to solve the cross-domain problem. The sample code is as follows:

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

@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOriginPatterns("*")
                .allowedHeaders(CorsConfiguration.ALL)
                .allowedMethods(CorsConfiguration.ALL)
                .allowCredentials(true)
                .maxAge(3600); // No need for pre-check within 1 hour (send OPTIONS request)
    }

}

5. Restart the backend service and access again

Now it’s time to witness the miracle. Press F12 to see the truth. Ignore the warning and you can see the printed response content, as shown in the following figure:

Conclusion

In fact, we can also use jQuery to do this. They are all the same. Which one you like depends on what you are used to. Here, the integrated HTTP library axios is introduced. Students who are interested are welcome to try it by themselves.

This is the end of this article about the details of Vue3 integrated HTTP library axios . For more relevant Vue3 integrated HTTP library axios content, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Detailed example of using typescript to encapsulate axios in Vue3
  • Use vue3.x+vite+element-ui+vue-router+vuex+axios to build a project
  • Vue3+TypeScript encapsulates axios and implements request calls
  • Vue3 configures axios cross-domain implementation process analysis
  • Vue3 uses axios interceptor to print front-end logs

<<:  HTML table markup tutorial (30): cell dark border color attribute BORDERCOLORDARK

>>:  TCP third handshake data transmission process diagram

Recommend

Detailed explanation of common usage of pseudo-classes before and after in CSS3

The before/after pseudo-class is equivalent to in...

How to build your own Nexus private server in Linux

This article describes how to build a Nexus priva...

Analyze how to automatically generate Vue component documentation

Table of contents 1. Current situation 2. Communi...

A brief analysis of the best way to deal with forgotten MySQL 8 passwords

Preface Readers who are familiar with MySQL may f...

js uses FileReader to read local files or blobs

Table of contents FileReader reads local files or...

How to Rename a Group of Files at Once on Linux

In Linux, we usually use the mv command to rename...

What to do if you forget your mysql password

Solution to forgetting MySQL password: [root@loca...

MySQL index cardinality concept and usage examples

This article uses examples to explain the concept...

Detailed steps to install docker in 5 minutes

Installing Docker on CentOS requires the operatin...

Examples of using the Li tag in HTML

I hope to align the title on the left and the dat...

How to reference jQuery in a web page

It can be referenced through CDN (Content Delivery...

Ubuntu Server Installation Tutorial in Vmware

This article shares with you the Ubuntu server ve...