zoukankan      html  css  js  c++  java
  • 分享下知心天气jsonp跨域访问的代码

     var myWeather = (function(){
            var funShun = "https://api.thinkpage.cn/v3/weather/now.json?location=Fushun&callback=showWeather&"
            return {
                el : {},
                init : function(){
                    var that = this;
                    $.extend(that.el,{
                        'nowWeather' : $('.now-weather'),
                        'nowTemperature' : $('.now-temperature')
                    })
                },
                getUrl : function(){
                    var time = Math.round(new Date().getTime()/1000);
                    var str = "ts=" + time + "&ttl=30&uid=UF4C86B626";
                    var hash = CryptoJS.HmacSHA1(str, "nvczde0rd9tkkr3o");
                    var base = hash.toString(CryptoJS.enc.Base64);
                    var sig = encodeURIComponent(base); 
                    var url = funShun  + str + "&sig=" + sig;
                    return url;
                },
                getWeather : function(){
                    var that = this;
                    console.log(that.el.nowWeather)
                    $.ajax({
                        url:that.getUrl(),
                        jsonp : 'callback',
                        jsonpCallback : 'showWeather',
                        success : function(data){
                           function showWeather(data){
                                that.el.nowWeather.html(data.results[0].now.text)
                                that.el.nowTemperature.html(data.results[0].now.temperature)
                                $.cookie('weather', JSON.stringify(data))
                           }
                           eval(data);
                        }
                    })
                },
                rundev : function(){
                    this.init();
                    if($.cookie('weather') !=''){
                        var weather =  $.parseJSON($.cookie('weather'))
                        this.el.nowWeather.html(weather.results[0].now.text)
                        this.el.nowTemperature.html(weather.results[0].now.temperature)
                    }else{
                        this.getWeather();
                    }
                }
            }
        })()
        myWeather.rundev();
    

      

  • 相关阅读:
    Spring学习之旅(二)--容器
    Spring学习之旅(一)--初始Spring
    Logback的使用
    DES加解密工具类
    Lombok插件的使用
    from 表单用 GET 方法进行 URL 传值时后台无法获取问题
    组播
    linux头文件路径
    IANA
    6号板获取或放文件
  • 原文地址:https://www.cnblogs.com/smallteeth/p/7435230.html
Copyright © 2011-2022 走看看