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();
    

      

  • 相关阅读:
    HTTP协议详解
    10本Linux免费电子书
    面试高级算法梳理笔记
    Linux服务器的那些性能参数指标
    2016 年开发者头条十大文章系列
    程序员如何优雅的挣零花钱
    [oracle] oracle权限传递
    [oracle] 两种权限:系统权限VS对象权限
    [oracle] 系统权限管理
    [oracle] 重要服务启动与停止命令行
  • 原文地址:https://www.cnblogs.com/smallteeth/p/7435230.html
Copyright © 2011-2022 走看看