首页 > 技术文章 > JSON(跨域问题)

chengxiao35 2020-08-13 21:24 原文

1、什么是JSON:json是存储和交换文本信息的语法  json是轻量级的文本数据交换格式   json比XML更小、更快、更容易解析

2、json的语法:

 var josnStr = { "name": "张三", "age": 22, "sex": "男", "exceting": ["学习", "游戏", "睡觉"] }
    console.log(josnStr.name)  //张三
    console.log(josnStr["age"])  //【】里面必须加引号   22  
 
 用for in 或者forEach  把 josnStr.exceting里的元素打印到页面中
    // for in 遍历
    for (var key in josnStr.exceting) {
        console.log(key)      //key是索引
        document.write(josnStr.exceting[key])
    }
 
    // forEach(value,index)  value值 index索引
    josnStr.exceting.forEach(function (value, index) {
        document.write(value)
    })
 
3、json的使用方法  
 json对象转换为json字符串   JSON.stringify()  
json字符串转为json对象     JSON.parse()
 
var json = {'name':'zs','age':18};
console.log(json.name)
 
// JSON.stringify()
console.log(JSON.stringify(json))
 
//  JSON.parse()
var json1 = '{"name":"李四","sex":"男"}';
console.log(JSON.parse(json1))

 

4、jsonp

定义:是json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。

 

$(function () {
        $.ajax({
            url: 'https://www.baidu.com?callback=fn',
            type: 'get',
            dataType: 'jsonp',    //dataType
            success: function (res) {
                console.log(res)   //No 'Access-Control-Allow-Origin' header is present on the requested resource. 出现这个就是跨域问题
            }
        })
    })
    // 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) {
    }

 

 

什么是跨域?   只要端口号,域名,协议有一个不一样就是跨域

结局跨域:   1.jsonp 动态创建script 标签,利用src属性可以完成

        2.通过后台设置请求头
      3.代理方式

 

推荐阅读