• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Rgzs
博客园    首页    新随笔    联系   管理    订阅  订阅
json和跨域

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.代理方式
posted on 2020-08-14 21:03  飄落的葉子  阅读(181)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3