jsonp/ajax 自己的一些总结
data.json代码:[{"name": "张三", "age": 18}, {"name": "李四", "age": 18}, {"name": "王五", "age": 19}]
html代码:<ul>
<li v-for="item in newData">
{{item.name}}{{item.age}}
</li>
</ul>
js代码:var app = new Vue({
"el": "#app",
data: function () {
var newData = '';
$.ajax({
url: "./data.json",
async:false,
type: "get",
dataType: "json",
catch: false,
success: function (data) {
newData = data;
console.log(typeof newData);
}
});
return {
newData: newData
}
}
});
这是自己写的一个小vue例子,想用vue的v-for循环绑定数据,中间出了很多问题,总结:
1.一开始ajax请求里没写代码中标红的一行,结果页面上就是不出现,加了他就出现,忽然明白ajax默认异步请求,数据还没请求过来就绑定上去,肯定不行啊,所以异步请求要谨慎,还是要研究一下里面的每个参数啊,需要传数据还要加上data选项,它是发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。如下。
2.找了一个豆瓣的开放接口:https://api.douban.com/v2/book/search,ajax请求需要传参数就要这样:
function handleResponse(data) {
console.log(2);
}
$.ajax({
async : true,
url : "https://api.douban.com/v2/book/search",
type : "GET",
dataType : "jsonp", // 返回的数据类型,设置为JSONP方式
jsonp : 'callback', //指定一个查询参数名称来覆盖默认的 jsonp 回调参数名 callback(感觉不重要,不用写)
jsonpCallback: 'handleResponse', //设置回调函数名(感觉这个是传给服务端函数名,服务器会根据你传过来的函数名,把你请求的数据放在这个函数的形参里,你前台定义这个函数并且在函数里处理这个函数就可以了,先执行这个函数,再执行success函数)
data : { q : "java", count : 1 }, success: function(response, status, xhr){ console.log('状态为:' + status + ',状态是:' + xhr.statusText); console.log(response); } });
如果指定了 script 或者 jsonp 类型,那么当从服务器接收到数据时,实际上是用了 <script> 标签而不是 XMLHttpRequest 对象。这种情况下,$.ajax() 不再返回一个 XMLHttpRequest 对象,并且也不会传递事件处理函数,比如 beforeSend。
默认情况下,请求总会被发出去,但浏览器有可能从它的缓存中调取数据。要禁止使用缓存的结果,可以设置 cache 参数为 false。如果希望判断数据自从上次请求后没有更改过就报告出错的话,可以设置 ifModified 为 true。也就是在ajax()的参数里加一行ifModified:true。
jsonp/ajax 自己的一些总结的更多相关文章
- jq+jsonp+ajax解决跨域问题
Jsonp(JSON with Padding)是资料格式 json 的一种“使用模式”,可以让网页从别的网域获取资料. 关于Jsonp更详细的资料请参考http://baike.baidu.com/ ...
- jsonp Ajax跨域请求
什么是JSONP? JSONP(JSON with Padding)是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域 ...
- PHP jsonp ajax 跨域 实例
HTML代码 <html> <head> <title>跨域测试</title> <script src="http://code.jq ...
- json与jsonp ajax
今天在网上找了一下资料,发现这篇文章总结得好,果断转了:http://blog.csdn.net/superhosts/article/details/9057301
- jquery的ajax和jsonp的写法
交互 ajax jsonp ajax跟之前一模一样 $(document).ready(function(){ $.ajax({ url:'get.php', ...
- JSONP解决ajax跨域问题
在A域名下,用ajax请求B域名下的请求,会报类似这样的错误:No 'Access-Control-Allow-Origin' header is present on the requested r ...
- 使用jsonp实现ajax跨域请求
Jsonp(JSON with Padding)是资料格式 json 的一种“使用模式”,可以让网页从别的网域获取资料. 由于同源策略,一般来说位于 server1.example.com 的网页无法 ...
- C# WebClient、jQuery ajax jsonp实现跨域
WebClient 无传输数据获取 Uri uri = new Uri(allURL); WebClient wc = new WebClient(); wc.Encoding = System.Te ...
- jQuery的ajax跨域 Jsonp原理
1.Jsonp Jsonp(json with padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题. Jsonp是为了解决ajax跨域发送http请求出现的,利用S ...
随机推荐
- Window 10 单机配置MYSQL主从同步
Master数据库:127.0.0.1:3306 Slave数据库:127.0.0.1:3307 Master操作 修改ini信息 Master MYSQL安装目录下,找到my.ini,在[mysql ...
- linux命令之信息显示与搜索文件命令
1.uname:显示系统信息 该命令用于显示系统相关的信息,比如内核版本号,硬件架构等. 参数 说明 -n(常用) 显示主机名称 -r(常用) 显示内核发行版本号 示例: 1)显示主机名 [root@ ...
- 比较有用的php代码片段
一 从网页中提取关键词 $meta = get_meta_tags('http://www.emoticode.net/'); $keywords = $meta['keywords']; // Sp ...
- Mybatis 动态Sql语句《常用》
MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦.拼接的时候要确保不能忘了必要的空格,还要注意省掉 ...
- 洛谷P5284 [十二省联考2019]字符串问题(SAM+倍增+最长路)
题面 传送门 题解 首先,我们把串反过来,那么前缀就变成后缀,建一个\(SAM\).我们发现一个节点的后缀是它的所有祖先 那么我们是不是直接按着\(parent\)树建边就可以了呢? 显然不是.我们假 ...
- python 取出字典的键或者值/如何删除一个字典的键值对/如何遍历字典
先定义一个字典并直接进行初始化赋值 my_dict = dict(name="lowman", age=45, money=998, hourse=None) 1.取出该字典所有的 ...
- 详解sizeof与strlen
一,sizeof是C语言的一种单目运算符,与C语言的其他运算符++,--一样,它并不是函数:sizeof()以字节为单位给出了操作数的大小:sizeof的值是无符号int. strlen是一个函数,只 ...
- 【表单验证】基于jQuery的高度灵活的表单验证(无UI)
表单验证是前端开发过程中常见的一个需求,产品需求.业务逻辑的不同,表单验证的方式方法也有所区别.而最重要的是我们要清楚,表单验证的核心原则是--错误信息提示准确,并且尽可能少的打扰/干扰用户的输入和体 ...
- python------对于面向对象的理解
python中一切皆为对象 其实面向对象没什么高大上的东西,只不过把我们平时对于事物的描述和动作系统的总结成了一个定义事物的方法而已. 我们平时向别人介绍一个他(她)从未见过的东西,会从外形和外貌特征 ...
- clang命令理解程序
Xcode 创建一个mac OS command Line Tool程序 步骤打开终端 cd + 工程路径(绝对路径)(注:拖拽main.m文件到终端) input —preprocessor— ...