vue.js和aixos.js

# https://blog-static.cnblogs.com/files/lichengguo/vue.js
# 下载该文件,保存的路径为代码同级目录 js/vue.js 文件 # https://blog-static.cnblogs.com/files/lichengguo/axios.js
# 下载该文件,保存的路径为代码同级目录 js/axios.js 文件

js操作json数据

<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<title>Title</title>
</head> <body>
<script>
// json语法
let human = {
"username": "tom",
"password": "1234567",
"age": 20,
}; console.log(human);
console.log(human["username"])
console.log(human.age)
console.log(typeof human);
console.log("--------------------") // JSON对象提供对json格式数据的转换功能
// stringify(json对象) # 用于把json转换成字符串
let result = JSON.stringify(human);
console.log(result); // {"username":"tom","password":"1234567","age":20}
console.log(typeof result); // string // parse(字符串类型的json数据) # 用于把字符串转成json对象
let json_str = '{"password":"1123","age":20,"name":"jerry"}';
console.log(json_str); // {"password":"1123","age":20,"name":"jerry"}
console.log(typeof json_str); // string let json_obj = JSON.parse(json_str);
console.log(json_obj);
console.log(typeof json_obj); // object console.log(json_obj.age) // 20
</script>
</body> </html>

axios的介绍

<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<title>Title</title>
<script src="js/vue.js"></script>
<script src="js/axios.js"></script>
</head> <body>
<script>
/*
vue.js默认没有提供ajax功能的
所以使用vue的时候,一般都会使用axios的插件来实现ajax与后端服务器的数据交互
注意,axios本质上就是javascript的ajax封装,所以会被同源策略限制
下载地址:
https://unpkg.com/axios@0.18.0/dist/axios.js
https://unpkg.com/axios@0.18.0/dist/axios.min.js 增 post
删 delete
改 put
查 get
axios提供发送请求的常用方法有两个:axios.get() 和 axios.post() 发送get请求
参数1:必填,字符串,请求的数据接口的url地址,例如请求地址:http://www.baidu.com?id=200
参数2:可选,json对象,要提供给数据接口的参数
参数3:可选,json对象,请求头信息
axios.get('服务器的资源地址 参数1',{
params:{
// 参数2
参数名:'参数值',
} },{
// 参数3
responseData: "json", }).then(function (response) {
console.log("请求成功");
console.log(response); }).catch(function (error) {
console.log("请求失败");
console.log(error.response);
}); 发送post请求
参数和使用和axios.get()一样
参数1: 必填,字符串,请求的数据接口的url地址
参数2:必填,json对象,要提供给数据接口的参数,如果没有参数,则必须使用{}
参数3:可选,json对象,请求头信息
axios.post('服务器的资源地址 参数1', {
// 参数2
username: 'tom',
password: '123456'
},{
// 参数3
responseData: "json",
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
*/
</script>
</body> </html>

axios的get请求

<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<title>Title</title>
<script src="js/vue.js"></script>
<script src="js/axios.js"></script>
</head> <body>
<div id="app">
<input type="text" v-model="city">
<button @click="get_weather">点击获取天气</button>
</div> <script>
let vm = new Vue({
el: "#app",
data: {
city: "",
},
methods: {
get_weather() {
if (this.city == "") {
alert("请输入城市名称")
return false
} // http://wthrcdn.etouch.cn/weather_mini?city=城市名称
axios.get("http://wthrcdn.etouch.cn/weather_mini", {
params: {
city: this.city,
} }).then(response => {
console.log(typeof response)
console.log(response); }).catch(error => {
console.log(error.response)
});
},
},
})
</script>
</body> </html>

axios的post请求

<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<title>Title</title>
<script src="js/vue.js"></script>
<script src="js/axios.js"></script>
</head> <body>
<div id="app">
<button @click="login">登录</button>
</div> <script>
let vm = new Vue({
el: "#app",
data: {
city: "",
},
methods: {
// 登录
login(){
axios.post("http://127.0.0.1:8080/login/", {
username: "tom",
password: "123",
}).then(function (res) {
console.log(res);
console.log(res.data);
}).catch(function (err) {
console.log(err);
})
}, //
},
})
</script>
</body> </html>

axios的post请求服务端

package main

import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
) type userInfo struct {
Username string `json:"username"`
Password string `json:"password"`
} func login(w http.ResponseWriter, r *http.Request) {
var u userInfo defer r.Body.Close() //关闭连接 // 解决跨域
w.Header().Set("Access-Control-Allow-Origin", "*") // 允许访问所有域
w.Header().Add("Access-Control-Allow-Headers", "Content-Type") // header的类型 if r.Method == "POST" {
// 获取客户端传过来的json数据
b, err := ioutil.ReadAll(r.Body)
if err != nil {
fmt.Println("读取数据报错了哦", err)
return
} // 通过内置的json包转换成对应的结构体
_ = json.Unmarshal(b, &u) //
if u.Username == "tom" && u.Password == "123" {
//返回数据给客户端
w.Write([]byte("登录成功"))
} else {
w.Write([]byte("登录失败"))
}
}
} func main() {
http.HandleFunc("/login/", login)
http.ListenAndServe("0.0.0.0:8080", nil)
}

最新文章

  1. Java-URL类详解
  2. div内容上下居中
  3. ViewController respondsToSelector:]: message sent to deallocated instance
  4. 清除BOM头源码
  5. php curl vs python提交多维数组+文件
  6. C语言异常与断言接口与实现
  7. viewpager+fragment+HorizontalScrollView
  8. js中冒泡事件和捕获事件
  9. [iPhone高级] 基于XMPP的IOS聊天客户端程序(IOS端一)
  10. 只有innoDB才允许使用外键
  11. H - Food - hdu 4292(简单最大流)
  12. java算法 蓝桥杯 乘法运算
  13. 将本地代码上传到github
  14. 创建、设置和安装Windows服务
  15. MySql Outer Join 简单化
  16. 通过SVG与CSS3实现向上图标
  17. 设计模式之Template Method模式
  18. 【转载】 qml: MouseArea重叠问题;
  19. Win10 + MASM32 + EditPlus 汇编语言编程环境设置
  20. 弱网测试之基于TP-LINK

热门文章

  1. Linux导出未越狱Iphone10.3-QQ聊天记录
  2. 令牌桶限流思路分享(PHP+Redis实现机制)
  3. C语言:if条件写法
  4. awk对某个字段分割处理
  5. SpringMvc接受请求参数的几种情况演示
  6. python -- 程序的结构语句
  7. .net core工具组件系列之Redis—— 第一篇:Windows环境配置Redis(5.x以上版本)以及部署为Windows服务
  8. 第1天 Mark Down 学习及DOS命令
  9. Docker隔离技术
  10. 静态Web服务器(py版)