网上收集修改的原生jsonp代码

;(function(){
    var formatParams = function(data) {//格式化参数
        var arr = [];
        for (var name in data) {
            arr.push(encodeURIComponent(name) + ‘=‘ + encodeURIComponent(data[name]));
        }
        return arr.join(‘&‘);
    }
    var jsonp = function(options) {
        options = options || {};
        if (!options.url || !options.callback) {
            throw new Error("参数不合法");
        }

        //创建 script 标签并加入到页面中
        var callbackName = (‘jsonp_‘ + Math.random()).replace(".", "");
        var oHead = document.getElementsByTagName(‘head‘)[0];
        var params = "";
        if(options.data){
            options.data[options.callback] = callbackName;
            params += formatParams(options.data);
        }else{
            params+=options.callback+"="+callbackName;
        }
        var oS = document.createElement(‘script‘);
        oHead.appendChild(oS);

        //创建jsonp回调函数
        window[callbackName] = function (json) {
            oHead.removeChild(oS);
            clearTimeout(oS.timer);
            window[callbackName] = null;
            options.success && options.success(json);
        };

        //发送请求
        oS.src = options.url + ‘?‘ + params;

        //超时处理
        if (options.time) {
            oS.timer = setTimeout(function () {
                window[callbackName] = null;
                oHead.removeChild(oS);
                options.fail && options.fail({ message: "超时" });
            }, options.time);
        }
    };
    window.jsonp = jsonp;
})();
//调用方法
/*jsonp({
    url:"http://www.baidu.com",
    callback:"callback",   //跟后台协商的接收回调名
    data:{id:"1000120"},
    success:function(json){
        alert("jsonp_ok");
    },
    fail:function(){
        alert("fail");
    },
    time:10000
})*/

原文链接:http://www.html-js.com/article/JavaScript-based-implementation-of-AJAX-JSONP-and-native-JS-DOM-finishes-loading-events

时间: 2024-11-09 00:58:19

网上收集修改的原生jsonp代码的相关文章

android recovery代码修改之原生建议

我们都知道recovery升级的时候,是根据升级脚本updater-script里面的函数,去一步步执行的,比如mount,format等相关的操作,有时候我们需要增加一些自己特殊的更新的接口,这时候就可能需要再单独封装一个函数接口,我所知道的,绝大多数的开发者,都是直接在bootable/recovery/updater/install.cpp里面的RegisterInstallFunctions里面,直接注册一个函数,这样功能上面是实现了,但是修改上面并不规范. 其实google给我们预留了

用JavaScript修改CSS属性的代码

用JavaScript修改CSS属性的代码 作者: 字体:[增加 减小] 类型:转载 时间:2013-05-06我要评论 这篇文章主要介绍用原生的javascript修改CSS属性的方法,需要的朋友可以参考下 用JavaScript修改CSS属性 只有写原生的javascript了. 1.用JS修改标签的 class 属性值: class 属性是在标签上引用样式表的方法之一,它的值是一个样式表的选择符,如果改变了 class 属性的值,标签所引用的样式表也就更换了,所以这属于第一种修改方法. 更

从网上或者哪里拷贝下来的代码前面总有编号,如何去掉(原创)

从网上或者哪里拷贝下来的代码前面总有编号,如何去掉呢,网上有说用程序的太麻烦,于是,我找到了下面两种方法,share 一下~ 1.使用正则表达式:在editorplus(notepad++)里按ctrl+h,弹出框里勾选上“正则表达式(regular expression)”,然后第一个框里写   ^[0-9]*.第二个框里敲一个空格 2.这个是notepad++特有的,而editorplus没有的将代码拷进去,按住ctrl+alt的同时,按住鼠标左键不放,将需要的代码部分截取出来,复制.黏贴即

使用findViewWithTag并不需要修改太多的代码,只需要改动ImageAdapter这一个类就可以

这就是整个程序所有的代码了,记得还需要在AndroidManifest.xml中添加INTERNET权限. 那么目前程序的思路其实是很简单的,我们在ListView的getView()方法中开启异步请求,从网络上获取图片,当图片获取成功就后就将图片显示到ImageView上面.看起来没什么问题对吗?那么现在我们就来运行一下程序看一看效果吧. 恩?怎么会这个样子,当滑动ListView的时候,图片竟然会自动变来变去,而且图片显示的位置也不正确,简直快乱成一锅粥了!可是我们所有的逻辑都很简单呀,怎么

修改VC++6.0代码提示快捷键设置

工具-->定制,弹出定制对话框: 然后点击键盘,类别选择编辑,命令选择CompleteWord,在按下新快捷键位置输入新快捷键,然后点击右上角的分配,如图: 修改VC++6.0代码提示快捷键设置,布布扣,bubuko.com

js日期处理类(网上收集)

/*** 日期处理工具类*/ var DateUtil = function(){ /**     * 判断闰年     * @param date Date日期对象     * @return boolean true 或false     */    this.isLeapYear = function(date){        return (0==date.getYear()%4&&((date.getYear()%100!=0)||(date.getYear()%400==0)

Android 阅读器架构图,网上收集,留做存货

这个结构图是网上收集的图片.基结构明晰简洁.易于后期维护.本文会继续收集很多其他其他优秀的结构图,望有图的朋友推荐~

修改servlet的模板代码

实际开发中,这些生成的代码和注释一般我们都用不到的,每次都要手工删除这些注释和代码,很麻烦.下面以MyEclipse 2014(其实版本通用的,都可以修改)为例进行说明如何修改Servlet的模板代码.修改servlet的模板代码

jQuery代码开发技巧收集,jquery常用的开发代码

jQuery代码开发技巧收集,jquery常用的开发代码 今天分享一个jquery常用的开发代码,大部分是网友总结的,总共60条.后期我也会陆续完善! 把我在开发中常用的写在这里,希望持续关注~~ 1. 使用siblings()来处理同类元素 // Rather than doing this $('#nav li').click(function(){ $('#nav li').removeClass('active'); $(this).addClass('active'); }); //