重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个。。 提供的数据应该是需要使用 JSON来请求吧。
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站建设、成都网站建设、乌鲁木齐网络推广、小程序开发、乌鲁木齐网络营销、乌鲁木齐企业策划、乌鲁木齐品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供乌鲁木齐建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
虽然 jq 有jsonp,但是一直没有成功使用过。。 所以自己写了一个简单的。
var jsonp = function (url, callback) {
if (typeof url=== 'undefined') {
throw 'the 1st param "url" missing';
}
if (typeof callback === 'undefined') {
throw 'the 2nd param "callback" missing';
}
var jsonpcallback = 'callback' + new Date().valueOf();
if (typeof callback !== 'string') {
window[jsonpcallback] = callback;
callback = jsonpcallback;
} else {
window[jsonpcallback] = function (data) {
eval(callback).call(window, data);
}
}
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', url + (url.indexOf('?') == -1 ? '?' : '') + 'callback=' + jsonpcallback);
var head = document.getElementsByTagName('head')[0];
head.appendChild(script);
};
然后,你在页面中这样调用:
jsonp('', function (data){
var title = data.title;
// 你自己的数据处理 可以通过 for..in 的结构来遍历data的属性。
});
还是补充一下吧,这样可以取到返回的所有数据(ulli结构/li..../ul),在上面的回调里面调用这个函数:
function getObjectData(data){
var f_this = arguments.callee;
var $ul = $('ul');
for(var item in data){
var row = data[item];
var $li = $('li');
if(!$.isPlainObject(row) !$.isArray(row)){
$li.append(item + ':' + row);
}else{
$li.append(item).append(f_this(row));
}
$ul.append($li);
}
return $ul;
}
对于零基础小白,可以看看以下书籍
《图解 HTTP》:一本HTTP的神书,图文并茂,生动形象,非常适合小白学习。
《Head First HTML与CSS(第2版)》:入门真的是经典书籍,手把手教学,丰富的案例让你从 0 开始学前端。
《锋利的jQuery》:作为第一本原因是jQuery入门快,你不会因为js的晦涩难懂而止步不前,因为学习jQuery后你可以自己写一些可以即使看到效果的小项目从而提升兴趣。
《Javascript 高级程序设计》:书中涉及的概念基本涵盖了js的大部分内容,包括作用域链、js数据类型、OOP对象在js中的实现、闭包、BOM和DOM模型、对变态IE的系列兼容的解决方案、事件流、还有xml、jason、E4X这些数据格式与js的交互操作简介、高级技巧的介绍(比如惰性载入)等等
《高性能JavaScript》:揭示了技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的性能,包括代码的加载、运行、DOM交互、页面生存周期等。
《JavaScript 设计模式与开发实践》:腾讯前端AlloyTeam团队出品,综合讲述前端的设计模式,设计原则,编程技巧,代码重构等等。
《CSS 世界》:CSS和javascript一样,都是很容易上手,却很难精通的。这本是前端知名博主张鑫旭的书籍,好评很多,讲的很细致。
《CSS 揭秘》:CSS进阶必备书籍,47 个 css 技巧让你在面对各种 css 问题的时候游刃有余。
《深入浅出Node.js》:针对Node的基本原理做了深入,能让你了解底层的Node实现
把原来的老版本给删除掉,下载最新版本替换,这给机器没有关系。是软件的故障.
就是播放器的问题,下载最新版本恢复下程序就行!!
现代 Web 应用中频繁使用的一项功能就是表单数据序列化,XMLHttpRequest 2 级为此定义了 FormData 类型,FormData 为序列化表单以及创建与表单格式相同的数据(通过 JS 来模拟表单键值对)提供了便利。
使用 post 发送表单键值对格式的请求时,依然可以使用查询字符串格式,只是要放在请求体中,即传入 send() 中,介绍以下几种方法:
方法1: 直接模仿表单提交的形式,缺点是需要手动设置请求头,还要自己序列化为查询字符串的形式传给 xhr 对象。
方法2: 使用 FormData() 构造函数,浏览器会自动识别并添加请求头 "Content-Type: multipart/form-data",且参数依然像是表单提交时的那种键值对儿,此外 FormData() 构造函数 new 时可以直接传入 form 表单的 dom 节点。
方法3: 使用 URLSearchParams() 构造函数传入查询字符串,返回的实例和 FormData 相似,同时浏览器也做出相同的行为。
另外,URLSearchParams() 构造函数 new 时可以直接传入查询字符串格式的参数,比如:
可见 send() 方法很灵活:
第一行是请求行,指明了方法、URI 和 HTTP 版本号;
接着是消息头(简单起见,只有一个 Content-Type);
然后空出一行;
接下来就是消息体,可以看到使用 multipart/form-data 时,消息体通过 boundary 来分隔多个字段,被分隔的每个字段都有自己的小头部和小消息体,且也用空行分隔。如此,提供了额外的信息。
字段的值可能是普通的字符,也可能是二进制文件:
multipart/form-data 最初由 《RFC 1867: Form-based File Upload in HTML》 文档定义。
文档简介中说明文件上传作为一种常见的需求,在目前(1995年)的html中的form表单格式中还不支持,因此发明了一种兼容此需求的MIME type。
文档中也写了为什么要新增一个类型,而不使用旧有的 application/x-www-form-urlencoded :因为旧有类型不适合用于传输大型二进制数据或者包含非ASCII字符的数据。平常我们使用这个类型都是把表单数据使用url编码后传送给后端,二进制文件当然没办法一起编码进去了。所以 multipart/form-data 就诞生了,专门用于有效的传输文件。
参考:
1. 豆瓣:JavaScript高级程序设计(第3版)
2. MDN: FormData
3. MDN: XMLHttpRequest.send()
4. 为什么上传文件要使用multipart/form-data
5. 谈谈form-data请求格式