直接上代码:前端
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>笑话</title>
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.min.js"></script>
<style>
#box{
width: 100%;
display: flex;
justify-content: space-between;
}
#box>div{
width: 30%;
height: 600px;
overflow: auto;
border: 1px solid;
border-radius: 10px;
display: flex;
flex-direction: column;
align-items: center;
}
#box>div>div{
width: 90%;
background-color: pink;
border-radius: 10px;
margin: 10px 0;
}
#box>div>div>img{
width: 90%;
margin-left: 5%;
}
</style>
</head>
<body>
<h1>JS调api获取数据,实现前后端完全分离。</h1>>
<div id="box">
<input id="txt1" type="text" value="Wx83849777" />
<input id="txt2" type="text" value="A7CF0112E2192C403C4EC804156A97FE"/>
<input id="txt3" type="text">
</div>
<script>
var appid=document.getElementById("txt1").value;//$("#txt1").val();
var secret=document.getElementById("txt2").value;//$("#txt2").val();
$.ajax ({
url:"http://192.168.0.38/ApiService/ToJxsWxApi.ashx?action=GetToken&appid="+appid+"&secret="+secret,
type:'GET',
dataType:'json',
timeout:20000,
success:function(ljdata){
var contnetstr = '';
alert(JSON.stringify(ljdata));
document.getElementById("txt3").value=eval(ljdata).token;
}
})
</script>
</body>
</html>
这里有个跨域的点:浏览器的安全机制控制了不能跨域获取数据(后台则没有这种限制),但是浏览器可以跨域访问资源。所以在后台api里需要加入一个属性:
context.Response.AddHeader("Access-Control-Allow-Origin", "*");
*代表不控制可访问域,也可以把需要访问的域名加上,多个域访问权限,则用“,”隔开。
如图 :已取到我想要的数据。