Axios 发起POST请求后端收不到数据
解决方法:
在引入Axios的文件定义一个默认请求转换方法即可,Qs
是Axios自带的不用另外安装
import Qs from 'qs';
Axios.defaults.transformRequest = function (data) {
return Qs.stringify(data)
};
后端打印$_GET
与$_POST
:
解决方法:
在引入Axios的文件定义一个默认请求转换方法即可,Qs
是Axios自带的不用另外安装
import Qs from 'qs';
Axios.defaults.transformRequest = function (data) {
return Qs.stringify(data)
};
后端打印$_GET
与$_POST
:
<?php
$func = function(){};
// bool(true),匿名函数属于Closure类的对象,可以以此判断变量是否为闭包函数
var_dump($func instanceof Closure);
首先安装Mock.js
:
npm install mockjs --save-dev
参考官方文档创建配置文件:
const Mock = require('mockjs');
Mock.mock('/admin/worker/login', function () {
return {
res: 1,
msg: '登录成功'
}
})
export default Mock
在main.js中引入上一步创建的配置文件:
//判断仅在开发环境引入
if (process.env.NODE_ENV == 'development') {
require('./config/mock')
}
之后使用axios发起请求,地址匹配将会触发对应的规则,获取到配置文件中设置的数据
使用Axios时遇到的问题,在每个组件import
一次太麻烦,所以百度查怎么进行全局注册,但是百度查到的都是Vue2的注册方法,照着改会在import Vue from 'vue'
处报错,而Vue3更改了引入Vue
的方法与全局注册的方法,以Axios举例:
Vue2 main.js
:
import Vue from 'vue'
import Axios from 'axios'
Vue.prototype.$axios = Axios
Vue3 main.js
:
import { createApp } from 'vue'
import App from './App'
import Axios from 'axios'
const app = createApp(App)
app.config.globalProperties.$axios = Axios
之后在组件中使用this.$axios
即可调用
Vue3接口文档:https://staging-cn.vuejs.org/api/application.html#app-config-globalproperties
先前写过小程序,语法比较接近Vue2,最近开始学Vue3,在组件语法上有些区别
Vue2 的组件语法:
<template>
HTML部分
</template>
<script>
export default {
data() {
return {
is_loading: true
//在此定义组件的变量
}
},
methods: {
getData: function () {}
//在此定义组件的方法
}
};
</script>
使用回调函数操作页面数据或做路由跳转时不可直接使用this
,回调函数中的this
关键字并不是被执行方法中的this
,所以会出错,可以定义一个that
来保存被执行方法的this
,在回调函数中使用that
即可
const that = this
axios
.get("/api/index.php")
.then(function (res) {
//直接使用that访问
that.spinning = false
that.$router.push({name: 'Index'})
})
在BrowserWindow.webPreferences
中加入webSecurity: false
即可
我使用了vue,配置文件为src/background.js
生产环境可以通过Nginx反向代理等设置来解决,本地开发环境可以不指定接口地址,设置本地虚拟代理服务器来解决。
1、首先设置仅在生产环境生效的接口地址,在入口文件main.js
加入:
import axios from 'axios';
if (process.env.NODE_ENV == 'production') {
axios.defaults.baseURL = 'https://text.com/'; //生产环境接口地址
}
读取到的文件默认是根据修改时间排序的,如果要根据文件名排序可以使用
fileInfos.OrderBy(f => f.Name);
得到的顺序为:1、10、2、3 ... 9,使用以下方法即可解决
DirectoryInfo directoryInfo=new DirectoryInfo(folderPath);
FileInfo[] fileInfos= directoryInfo.GetFiles();
List<string> files=new List<string>();
Array.Sort(fileInfos, (x1, x2) => int.Parse(Regex.Match(x1.Name, @"\d+").Value).CompareTo(int.Parse(Regex.Match(x2.Name, @"\d+").Value)));
foreach (FileInfo file in fileInfos)
{
files.Add(file.FullName);
}
返回参数单位为Byte(字节)
//Linux下获取磁盘"/"的总容量
disk_total_space('/')
//Linux下获取磁盘"/"的剩余容量
disk_free_space('/')