1、json javaScript Object Notation(javaScript 对象表示法)
json是 存储和交换文本信息的语法,类似XML json是轻量级的文本数据交换格式
2、JSON遍历数组
例:var jsonObj = { "name": "成霄","age": 22,"height": "175", "hobby": ["敲代码","健身","游戏"] };
console.log(jsonObj.name);
console.log(jsonObj['age']);
for (var key in jsonObj.hobby) {
//key 是数组的索引
document.write(jsonObj.hobby[key])
}
jsonObj.hobby.forEach(function(value,index){
console.log(value,index);
document.write(value)
})
3、json 对象 与json 字符串转换
json对象 转换成 json 字符串 json.stringify
json字符串 转json 对象 json.parse()
4、获取对象里的属性值
(1)json对象.属性
(2) json[‘属性’] []获取里面要加引号
5、jsonp 解决跨域
jsonp的实现原理 动态创建script标签
Jsonp(JSONwithPadding)是json的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。
为什么我们从不同的域(网站)访问数据需要一个特殊的技术(JSONP)呢?这是因为同源策略。
同源策略,它是由Netscape提出的一个著名的安全策略,现在所有支持JavaScript的浏览器都会使用这个策略。
示例
$(function () {
$.ajax({
url: 'https://www.baidu.com?callback=fn',
type: 'get',
dataType: 'jsonp',
success: function (res) {
console.log(res)
}
})
})
// 创建动态标签
var url = 'https://www.baidu.com?callback=fn';
var script = document.createElement('script');
document.getElementsByTagName('head')[0].appendChild(script);
script.setAttribute('src', url);
function fn(user, password) {
}
6、跨域
// 同源策略:协议,域名,端口号一致就叫同源 http/https www.baidu.com 8080
// 跨域:只要上述有一个不一致就叫跨域
总结:解决跨域方法:1.jsonp 2.后台配置 3.设置代理(后期再vue框架会讲)
// https://www.baidu.com:8080 源地址
// https://www.baidu.com:8090
$.ajax({
url:'http://course.myhope365.com/index',
type:'get',
dataType:'jsonp',
success:function(res){
console.log(res)
}
})
// jsonp的实现原理 动态创建script标签
var url = 'https://www.baidu.com?callback=fn';
var script = document.createElement('script');
script.setAttribute('src', url)
document.getElementsByTagName('head')[0].appendChild(script);
function fn(name, age) {
// 业务逻辑
}
// No 'Access-Control-Allow-Origin' header is present on the requested resource. 跨域问题
// 解决跨域:1.jsonp 动态创建script 标签,利用src属性可以完成
// 2.通过后台设置请求头
// 3.代理方式