vue2.0-axios-post的使用,以及前后台跨域搭配

Vue使用axios二次封装、解决跨域问题 在项目中,axios 进行二次封装可以更加方便的使用 Ajax 请求,提高代码复用性和维护性。同时可以封装统一的请求与响应拦截处理。在实际开发过程中,浏览器通常需要和服务器端进行数据交互。而 Vue.js 并未提供与服务器端通信的接口。从 Vue.js 2.0 版本之后,官方推荐使用axios 来实现 Ajax 请求。axios 是一个基于 promise 的 HTTP 客户端。 阅读详情

1.安装axois

2.main.js引入并配置

import axios from 'axios'
Vue.prototype.$ajax= axios
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
axios.defaults.baseURL = "http://xxxx.natapp1.cc/xm"

3.POST提交参数,POST提交参数的格式有严格要求,如果前后台搭配不当,就会出现问题。根据参数传递的数量,有两种POST的提交方式。

(1)POST参数少的时候

postTest(){
      //参数少
      var param = new URLSearchParams();
      param.append('emailAccount','xxx996537@qq.com');
      this.$ajax({
        method: 'post',
        url: '/v_register',
        data:param
      })
      .then(function(response){
        console.log(response.data)
        alert("post success!");
      })
      .catch(function(error){
        console.log(error);
      })

    }

此时对应的后端接收参数格式为:

 @PostMapping("/v_register")
 public Result v_register(String emailAccount){}

(2)POST参数多的时候

    //参数多 ,构造json:

      data{'id':'1','name':'小明'…}

      this.$ajax({
        method: 'post',
        url: '/v_register',
        data:data
      })
      .then(function(response){
        console.log(response.data)
        alert("post success!");
      })
      .catch(function(error){
        console.log(error);
      })

    },

此时对应的后端接收参数格式为:

 @PostMapping("/v_registers")

 public Result v_register(Object user){}

4.后端SpringBoot配置跨域

(1)将SpringBoot的版本调到2.0或者以下

(2)配置Config

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;


/**
 * @Auther: Chandler
 * @Date: 2018/6/11 15:43
 * @Description: 配置跨域
 */
@Configuration
public class CorsConfig{


private CorsConfiguration buildConfig() {  
        CorsConfiguration corsConfiguration = new CorsConfiguration();  
        corsConfiguration.addAllowedOrigin("*"); // 1  
        corsConfiguration.addAllowedHeader("*"); // 2  
        corsConfiguration.addAllowedMethod("*"); // 3  
        return corsConfiguration;  
    }  
  
    @Bean  
    public CorsFilter corsFilter() {  
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();  
        source.registerCorsConfiguration("/**", buildConfig()); // 4  
        return new CorsFilter(source);  
    }  
}

液滴碰撞壁面的过程背景论文——bouncing反弹,spreading扩展,splashing飞溅。铺展过程介绍。还存在很多未解之谜。 【1993-德国-Phenomena of liquid drop impact on solid and liquid surfaces】液滴碰撞壁面的过程背景——bouncing反弹,spreading扩展,splashing飞溅。还存在很多未解之谜。还存在很多未解之谜。不同液滴形状碰撞过程。 阅读详情

相关推荐

【WILEY】wiley期刊投稿详解:从revision到Accepted全流程实例讲解

注意:包括没标注修改位置的word文件和标注了修改位置的word文件。

Everyday try to become better -Kobe Bryant 1万+

Axios通过get和post方法提交和获取数据[基本使用]

在main.js中全局引入axios //全局引入axios //需要npm两个包axios和vue-axios Vue.use(VueAxios,axios); //axios相关配置 //更多配置待处理 axios.defaults.baseURL = 'http://localhost:8080/项目名/'; 通过get方法获取数据 getData(){ var _this...

chen_i 8416

Docker一键部署Synopsys EDA全家桶(VCS/Verdi 2018版)保姆级教程

本文提供了一份详尽的Docker容器化部署Synopsys EDA工具链(VCS/Verdi 2018版)的保姆级教程。通过环境隔离与标准化,解决传统安装的依赖冲突问题,并重点攻克了容器内GUI图形界面显示的核心难题。教程涵盖从Docker基础安装、镜像获取、容器启动配置,到使用X11转发或VNC实现Verdi完美显示的完整实践,旨在帮助芯片设计工程师快速构建稳定、可移植的一键化EDA工作环境。

weixin_29281941的博客 197

vue2前端使用axios发起post请求,后端(springboot)拿不到值解决办法

vue2前端使用axios发起post请求,后端(springboot)拿不到值解决办法

m0_53428367的博客 5596

Oracle集群管理-19.3升级19.18 opatchauto总结(java报错,resume oneoffs缺失目录)

t. (那个认为补丁已经打上了,但是oneoffs目录里面没有。将安装包文件的权限全部改成777.就继续执行了上述命令 ,此时使用opatch lsinv也是报错 ,在正常执行opatchauto apply。1 创建目录,存放补丁包,并赋予权限。于是使用如下命令对补丁进行回滚。

oradbm的博客 1415

【全网最全最详细】智能体提示词prompt教程

定义:提示词是用户输入给AI模型(如ChatGPT、MidJourney等)的指令或问题,用于引导模型生成特定类型的输出。它是用户与AI交互的核心媒介。作用:提示词的质量直接影响AI输出的准确性和相关性。好的提示词能明确任务边界、减少歧义,并激发模型的创造力。提示词就是“给AI下指令的说明书”——越清楚、越具体,AI干得越好!帮你更快、更准地拿到想要的结果,不用和AI“猜谜语”。

qq_38196449的博客 8215

在 Vue 2 中使用 Axios 发起 POST 和 GET 请求

Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 node.js,它提供了一种非常方便的方式来发送异步 HTTP 请求。在 Vue 2 应用中,Axios 可以帮助我们轻松地与后端 API 进行通信。本文将介绍如何在 Vue 2 项目中引入 Axios,并使用它来发起 POST 和 GET 请求。

qq_44977477的博客 2419

开源:AI+无人机巡检系统项目调研

本文系统梳理了主流开源无人机巡检技术栈,涵盖飞控系统(PX4/ArduPilot)、地面站软件(QGroundControl)、AI视觉识别(VisDrone/MPID/CPLID数据集)、三维重建(OpenDroneMap/COLMAP)和仿真模拟(AirSim/Gazebo)五大领域。通过对比各项目的技术特点、开发语言、开源协议及商用友好度,为无人机巡检产品开发提供完整的技术选型参考。重点推荐PX4飞控、DroneKit开发API等商用友好项目,同时分析了GPL/AGPL协议项目的开源要求。

lovehu6686的博客 2448

Vue2.x axios发送post请求

Vue2.x axios发送post请求安装axios配置main.jsvue文件内 script代码演示图 安装axios $ npm install axios //使用淘宝源 $ cnpm install axios //或者使用cdn:一般不使用 script src=“https://unpkg.com/axios/dist/axios.min.js” 配置main.js 以下代码...

千世丶希 1825

Python全栈入门到实战【基础篇 04】核心基础:变量与4种基础数据类型(int/float/str/bool)

本文介绍了Python编程中的变量和四种基础数据类型,作为后续所有语法的入门前提。变量是数据的“容器”,解决数据复用问题,而数据类型决定数据能进行的操作。文章详细讲解了变量的定义语法、命名规则(强制语法和推荐风格)、赋值与修改原理,并通过实操示例展示其应用场景。正确使用变量可以提升代码复用性、简化修改并增强可读性,是编程效率的核心原则。掌握这些基础知识能避免90%的新手语法错误,为学习更复杂的Python语法打下坚实基础。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 4311

2024年12月数据月报

2024年12月大数据月报,为您准备了阿里、字节、百度等大厂150多篇实践案例

SmartSi 2654

vue2.0 axios post请求传参问题(ajax请求)

axios post请求问题 项目中用的ajax请求是axios 废话不多说直接上axios中文文档我建议在做项目之前先看一下文档,因为说实话这个文档不是太难,先自己吃一下看看能不能咽下去。 我自己在做项目的时候(后端PHP)发现一个问题Content-Type: application/x-www-form-urlencoded;charset=UTF-8设置成form了但...

weixin_39885843的博客 1482

板蓝根挥发油微胶囊化技术及其在抗菌织物整理中的应用研究

微胶囊技术是一种通过成膜材料将具有反应活性或挥发性的液体或固体包封成微小颗粒的技术。该技术因其优异的缓释保护和物态改变性能,已在医药、食品、化妆品等多个领域得到广泛应用。本研究采用复凝聚法制备板蓝根挥发油的微胶囊,利用明胶和阿拉伯胶作为壁材,旨在提升其稳定性和抗菌性能。

qq_62634009的博客 584

vue中axios跨域请求

vue中axios跨域请求 1.axios 是 第三方库 使用方法: 使用 npm: $ npm install axios 使用 bower: $ bower install axios 使用 cdn: <script src="https://unpkg.com/axios/dist/axios.min.js"></script> axios ...

miaomiao博客 2万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【C#】使用vue3的axios发起get和post请求.net framework部署的API显示跨域

最近在对接.net framework 4.6.1部署的api接口,由于太久没有用这个框架了, 很多小细节都忘得差不多了,刚好趁这次遇到的问题进行简单记录下。 现在开发模式基本都是前后端分离,虽然C#和Java本身也有自己的前端页面, 但是目前出来的vue框架,极大帮助了在前端开发的效率和性能,拥抱变化吧!

小5聊的博客 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Vue3中使用axios

详细介绍了axios的安装和基本用法,如何在Vue3中使用axios发送HTTP请求,如何封装axios,使代码具有更好的可维护性,同时,针对跨域问题,也进行了详细的讲解

九仞山的专栏 2万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

vue项目中,使用axios跨域处理

vue使用axios解决跨域问题

胡世林的博客 4万+

头歌(Educoder)——Vue基础——Vue3 Ajax(axios)请求

第1关:Vue3 Ajax(axios)请求 任务描述 本关任务:编写一个能从指定 API 获取笑话的程序。 相关知识 为了完成本关任务,你需要掌握: Vue 与 Ajax; axios 请求的特点; 安装 Axios; 创建实例的方法; axios 实例方法; 具体代码演示; 实现跨域请求。

weixin_60732009的博客 2956

vue2.X使用axios的get,post方法跨域问题

一.安装axios,并配置相应文件。这里跨域请求的接口来知乎的api   安装npm install axios --save 使用及相关配置: 1.在要使用axios的文件中引入 import axios from 'axios'; 或者在src/main.js中全局声明 import axios from 'axios'; Vue.prototype.$a...

czp555的博客 4106

【原创】Vue使用axios解决SpringBoot跨域Post请求问题

作者:DCTANT 先介绍一下Web端使用的版本情况: 这里采用了Vue Cli+Webpack的形式搭建的项目,其中Vue版本为2.9.6,webpack版本为3.6.0,axios版本为0.19.0,在2019年9月19日应该算是比较新的版本了。 解决跨域请求问题不是单纯前端改改就好的,也不是后端单纯改改就好的,需要两个端配合修改才能解决问题,另外加上Android端也要相应进行配置,当...

DCTANT的博客 2406

入门 - Vue中使用axios原理分析及解决前端跨域问题

是Vue创建者主推的请求发送方式,因其简单的配置与良好的性能被前端爱好者所喜爱。众所周知,在进行网页设计时经常需要从后端拿数据,在Web应用初期会将整个页面或者文档直接拿过来,随着Web应用的发展,人们对性能的不断提升,逐渐向无页面刷新从后端获取数据,而axios就是其中一种新兴、火热的方式。在学习Vue中使用axios时,不需要太过于了解请求的发送过程,但需要对各种请求方式有一个大致的认识。本文将会从0到1的介绍vue中如何使用axios,并结合项目实例加深大家印象。

qq_61863348的博客 3901

Vue通过axios发送post请求出现跨域问题

在使用axios发送post请求时会出现跨域问题,报错如:Failed to load http://192.168.33.10:8009/api/token: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' i

weixin_45893787的博客 3676

关于vue使用axios post发送json数据跨域请求403的解决方法

最近使用vue框架开发项目的时候, 遇到了一个问题,其实这个问题在之前就已经遇到过,不过因为当时没有时间,所以采用了另外一种方法解决。今天再次遇到这个问题,就铁了心解决,在网上找到很多资料,经过尝试都没有能够很好解决,经过自己的一番折腾终于将这个问题解决。 原文已更新,请耐心往下看哦! 1. 问题 vue开发的时候,使用axios跨域发送请求,同时post发送的数据格式是json格式,发送出...

春虫虫丶丶丶的博客 10万+

解决axios跨域问题

方法一: 一、创建vue项目(vue init webpack projectName) 二、安装axios(npm insatll axios) 三、配置代理(config/index.js): 在开发环境的代理列表proxyTable添加 '/api': { target: 'http://127.0.0.1:8888', //自己服务的ip和服务的端口 changeOrigin: true, pathRewrite: {

虎小币的博客 5056

Vue2.0学习——axios用法详解

原来vue更新到2.0之后,尤大就宣告不再对vue-resource更新,而是推荐的axios。在github上,41503个start,而vue-resource只有8000个,看来群众的眼睛是雪亮的,尤大的眼睛也是雪亮的。下面记录一下axios的使用。github 地址:https://github.com/mzabriskie/axios功能特性在浏览器中发送 XMLHttpRequests...

哎呦?写bug呢? 3万+

记录:vue+django使用axios进行跨域请求数据

一.跨域问题 从网上了解到,跨域问题实际上是一种浏览器的基础安全设置,因为我们访问网站时,可能会自动带上一些本地cookie之类的信息,当用户从一个网站请求另一个网站时(或者是从一个端口/服务请求另一个端口服务时)就会产生跨域问题,总的来说就是不安全,具体可参照csrf漏洞,当你进入一个钓鱼网站,他将你的请求定向到一个正规网站,这样你访问的时候会带上你输入过的cookie,而这个钓鱼网站就可以得...

by_side_with_sun的博客 2805
上一篇: Ubuntu系统服务器安装Redis
下一篇: Mybatis插入数据null的的解决方案
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值