Vue-resoure 实现get post jsonp请求
1.之前学习中,如何发起数据请求?
2.常见的数据请求类型?get post jsonp
3.常见的URL请求资源地址
get请求地址: http://vue.studyit.io/api/getlunbo
post请求地址:http://Vuestudyit.io/api/post
jsonp请求地址:http://Vuestudyit.io/api/jsonp
4.JSONP的实现原理
由于浏览器的安全性限制,不允许AJAX访问 协议不同,域名不同,端口不同 数据接口不同,浏览器认为这种访问不安全
可以通过动态创建script标签的形式,把script标签的src属性指向数据接口的地址,因为script标签不存在跨域限制,这个数据获取方式,称作为JSONP (
注意:根据JSONP的实现原理,知晓JSONP只支持GET请求)
具体的实现过程:
- 先在客户端定义一个回调方法,预定义对数据的操作
- 再把这个回调方法的名称,通过URL传参的形式 提交到服务器的数据接口
- 服务器数据接口组织好要发送给客户端的数据,在拿着客户端传递过来的回调函数方法名称,拼接出一个调用这个函数的字符串,发送给客户端去解析执行
- 客户端拿到服务器返回字符串之后,当作script脚本去解析执行,这样就能够拿到JSONP的数据了。
除了使用v-resouce之外,还可以使用axios的第三方包实现数据的请求 主流现在是axios
<!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>Document</title>
<script src="./lib/vue-2.4.0.js"></script>
<!-- 引入第三方的axios cdn包 -->
<script src="https://unpkg.com/axios/dist/axios.min.js"></script> </head>
<body>
<div class="app">
<input id="aa" type="button" value="点击我" @click="getinfo">
<input type="button" value="VueGET" @click="getinfo">
</div> <script> // 使用js GET请求
window.onload=function(){
//1.获取a节点,并为其添加onclick点击函数
document.getElementById("aa").onclick=function(){
//创建一个XMLHttpRequest对象
var request=new XMLHttpRequest();
//5.调用XMLHttpRequest对象的open方法 建立与服务器之间的联系
request.open("GET",'http://www.phonegap100.com/appapi.php?a=getportalList&catid=20&page=1');
//6.调用XMLHttpRequest对象的send方法
request.send(null);
//7.为XMLHttpRequest 对象添加onreadystatechange响应函数
request.onreadystatechange=function(){
//8.判断响应是否完成:XMLHttpRequest 对象的readystate属性为4的时候
if(request.readyState==4){
//9.在判断响应是否可用,XMLHttpRequest 对象status属性值为200
if(request.status==200||request.status==304){
//10.输出结果 responseText
console.log(request);
}
}
}
//2.取消点击事件的默认行为
return false;
}
} // 使用Vue axios get请求
var vm=new Vue({ el:'.app',
data:{},
methods: {
getinfo(){ //发起get请求
var api='http://www.phonegap100.com/appapi.php?a=getportalList&catid=20&page=1';
axios.get(api).then(function(result){
console.log(result); //请求成功
});
}
},
}); </script>
</body>
</html>
Vue-resoure 实现get post jsonp请求的更多相关文章
- vue.js的ajax和jsonp请求
首先要声明使用ajax 在 router下边的 Index.js中 import VueResource from 'vue-resource'; Vue.use(VueResource); ajax ...
- [Vue] : vue-resource 实现 get, post, jsonp请求
vue-resource 实现 get, post, jsonp请求 常见的数据请求类型:get,post,jsonp 除了vue-resource之外,还可以使用axios的第三方包实现实现数据的请 ...
- Vue学习笔记【16】——vue-resource 实现 get, post, jsonp请求
除了 vue-resource 之外,还可以使用 axios 的第三方包实现实现数据的请求 之前的学习中,如何发起数据请求?原生.jQuery,需要操作DOM 常见的数据请求类型? get post ...
- 黑马vue---33、vue-resource 实现 get, post, jsonp请求
黑马vue---33.vue-resource 实现 get, post, jsonp请求 一.总结 一句话总结: vue-resource使用非常非常非常简单:this.$http.get('htt ...
- vue--vue-resource实现 get, post, jsonp请求
vue-resource 实现 get, post, jsonp请求 除了 vue-resource 之外,还可以使用 axios 的第三方包实现实现数据的请求 之前的学习中,如何发起数据请求? 常见 ...
- Vue系列(二):发送Ajax、JSONP请求、Vue生命周期及实例属性和方法、自定义指令与过渡
上一篇:Vue系列(一):简介.起步.常用指令.事件和属性.模板.过滤器 一. 发送AJAX请求 1. 简介 vue本身不支持发送AJAX请求,需要使用vue-resource.axios等插件实现 ...
- vue 使用 jsonp 请求数据
vue 使用 jsonp 请求数据 vue请求数据的时候,会遇到跨域问题,服务器为了保证信息的安全,对跨域请求进行拦截,因此,为了解决vue跨域请求问题,需要使用jsonp. 安装jsonp npm ...
- vue-resource: jsonp请求百度搜索的接口
1. yarn add vue-resource 2. main.js引入vue-resource import Vue from 'vue' import MintUI from 'mint-ui' ...
- Vue(八)发送跨域请求
使用vue-resource发送跨域请求 axios不支持跨域 1 安装vue-resource并引入 cnpm install vue-resource -S 2 基本用法 使用this.$http ...
随机推荐
- [转]Winform打包工具SetupFactory 9 的使用
写了个WinForm的小程序..以前没打过包..只是直接把Bin里的东西复制出来使用..自己使用是足够.但是发给别人毕竟不太好看(不牛逼)..所以就想着打包.. Vs2012自带的有打包的功能..相信 ...
- 【swoole】PHP+Swoole+Linux实现进程监控
脚本代码 class Server { const PORT = 8888; public function port() { //netstat -anp 2>/dev/null| grep ...
- Linux下压力测试命令ab
ab命令被集成到了httpd服务器中,所以想要使用ab命令需要先安装httpd服务.yum -y install httpd (1).ab命令的使用方法和常用选项 ab [选项] [http[s]:/ ...
- Python - Django - 简单分页的实现
models.py: from django.db import models class Book(models.Model): title = models.CharField(max_lengt ...
- win8(x64)下,重新安装delphi 2007时出现“Invalid Serial Number”,如何解决?
1)在添加删除程序里卸载delphi 2007 2)删除C:\ProgramData\CodeGear 3)删除C:\Program Files (x86)CodeGear 4)删除d:\Progra ...
- idea使用快捷键ALT+/的时候,本来想在new后面创建对象,结果又出来一个new
我们知道eclipse的自动提示补齐new 后面的对象的快捷键是ALT+/,当我使用idea的时候,把idea的快捷键换成了eclipse的风格. 然而当我按下ALT+/的时候,就给我自动输入了一个n ...
- shell脚本通过子网掩码计算出掩码位数
子网掩码格式为255.255.255.0可以通过以下脚本计算掩码位数 #!/bin/sh #maskdigits.sh mask maskdigits () { a=$(echo "$1&q ...
- windows系统中在jupyter安装虚拟环境内核
一.在jupyter中安装虚拟环境内核 1.创建Python3虚拟环境 参考本文其他博客 2.进入虚拟环境 3.安装jupyter pip install jupyter 4.添加当前环境到jupyt ...
- AWS 架构最佳实践概述(十一)
AWS 架构最佳实践 AWS合理架构的框架支柱 安全性 - 保护并监控系统 能够保护信息.系统和资产 通过风险评估和缓解策略 可靠性 - 从故障中恢复并减少中断 从基础设施或服务故障中恢复 动态获取计 ...
- Selenium(二十):expected_conditions判断页面元素
1. 判断元素(expected_conditons) 作为一个刚刚转到python开发的小朋友,在开发前只将前辈们封装的方法看了一遍,学了一边selenium基础.看到封装的方法有什么判断元素是否存 ...