分享下知心天气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();

  

时间: 2024-10-08 04:39:14

分享下知心天气jsonp跨域访问的代码的相关文章

jsonp跨域访问服务

前段时间在做产品开发的时候,需要与公司网站那边进行交互,我们所开发的产品上线后是放在一个域名下,公司网站那块是在另一个域名下,这样在页面中调用 网站那边的接口时就存在跨域的问题,当时为了不修改网站那边的接口,所以采用在服务端通过webservice方式进行调用网站接口,问题也很快解决了,当时我就在想 如果需要在js中直接访问的话,就涉及到到跨域的问题,那么怎么做才能解决这个问题呢,我上网找了一些资料,最后采用的是jsonp的方式来解决的.下面我来给大家分享下 用jsonp方式解决跨域问题.分为以

JQuery+ajax+jsonp 跨域访问

Jsonp(JSON with Padding)是资料格式 json 的一种“使用模式”,可以让网页从别的网域获取资料. 关于Jsonp更详细的资料请参考http://baike.baidu.com/view/2131174.htm,下面给出例子: 一.客户端 Html代码   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.

jquery Jsonp 跨域访问

$(function () { $.ajax({ url: 'http://ihisuns.vicp.cc:8765/PcClient.aspx', data: { "ModuleName": "MiXinDialogue", "MethodName": "GetMiXinDialogue", "Id": "1" }, dataType: "jsonp", jsonp

jquery ajax jsonp跨域调用实例代码

今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友 客户端代码 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApp.WebForm1" %><!DOCTYPE html P

JSON跨域读取那点事(JSONP跨域访问)

最近在码一个小项目,需要远程读取json.因为需求很少,如果引用jquery使用其getjson方法就显得很浪费嘛= = 这篇文章很详细的解释了JSON跨域读取的前世今生,把原理讲得很透彻.特此分享. 原文链接:http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html 前言: 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强

【AngularJs】---JSONP跨域访问数据传输

大家会自然想到只有一个字母之差的JSON吧~ JSON(JavaScript Object Notation)和JSONP(JSON with Padding)虽然只有一个字母的差别,但其实他们根本不是一回事儿 JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议.我们拿最近比较火的谍战片来打个比方,JSON是地下党们用来书写和交换情报的“暗号”,而JSONP则是把用暗号书写的情报传递给自己同志时使用的接头方式.看到没?一个是描述信息的格式,一个

jsonp跨域访问的原理及参数作用

什么是JSONP 先说说JSONP是怎么产生的: 1.一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面.动态网页.web服务.WCF,只要是跨域请求,一律不准: 2.不过我们又发现,Web页面上调用js文件时则不受是否跨域的影响(不仅如此,我们还发现凡是拥有"src"这个属性的标签都拥有跨域的能力,比如<script>.<img>.<iframe>): 3.于是可以判断,当前阶段如果想通过纯web端(Active

jsonp跨域访问

JavaScript解决API请求时的跨域处理问题 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>JSONP实现跨域访问</title> 6 </head> 7 <body> 8 <div id="mydiv"> 9 <b

jquery下利用jsonp跨域访问实现方法

$.ajax({ async:false, url: '', // 跨域URL type: 'GET', dataType: 'jsonp', jsonp: 'jsoncallback', //默认callback data: mydata, //请求数据 timeout: 5000, beforeSend: function(){ //jsonp 方式此方法不被触发.原因可能是dataType如果指定为jsonp的话,就已经不是ajax事件了 }, success: function (jso