当前位置: 首页 > news >正文

mui 浏览器跨域实现

from:http://ask.dcloud.net.cn/question/17373

APP开发时 是不需要JSONP支持的 mui本身就支持 但是 如果是微信或者浏览器的普通模式就不支持。所以贴出以下代码 大家可参考使用。(参考了zepto)

var jsonpID = 0;
    $.ajaxJSONP = function(url, options){
        if (typeof url === "object") {
            options = url;
            url = undefined;
        }
        var options = $.extend({}, options || {})
        for (var key in $.ajaxSettings) {
            if (options[key] === undefined) {
                options[key] = $.ajaxSettings[key];
            }
        }
         options.url = appendQuery(options.url, '_=' + Date.now())

        options.url = appendQuery(options.url,
          options.jsonp ? (options.jsonp + '=?') : options.jsonp === false ? '' : 'callback=?')
        var _callbackName = options.jsonpCallback,
      callbackName = ($.isFunction(_callbackName) ?
        _callbackName() : _callbackName) || ('jsonp' + (++jsonpID)),
      script = document.createElement('script'),
      originalCallback = window[callbackName],
      responseData,
      abort = function(errorType) {
       script.parentNode.removeChild(script)
        if (callbackName in window) window[callbackName] = empty
        ajaxComplete('abort', xhr, options)
      },
      xhr = { abort: abort }, abortTimeout;
        if (options.error) script.onerror = function() {
          xhr.abort()
          options.error()
        }

        window[callbackName] = function(data){
          clearTimeout(abortTimeout)
          script.parentNode.removeChild(script)
          delete window[callbackName]
          ajaxSuccess(data, xhr, options)
        }

        serializeData(options)
        script.src = options.url.replace(/=\?/, '=' + callbackName)
        document.head.appendChild(script)

        if (options.timeout > 0) abortTimeout = setTimeout(function(){
            xhr.abort()
            ajaxComplete('timeout', xhr, options)
          }, options.timeout)    
        return xhr
      }

  

相关文章:

  • ios网络请求报错:The resource could not be loaded because the App Transport Security policy requires the us
  • iOS 应用将适应新的的IPv6-only网络 -解决方案
  • iOS 开发怎么入门?
  • 如何在Mac OS X上安装 Ruby运行环境
  • iOS CocoaPods安装和使用图解
  • Github上600多个iOS开源项目分类及介绍
  • 使用CocoaPods找不到头文件解决方法
  • 用xib设置圆角,边框和UITextField的私有属性placeholderColor
  • 定制全局的导航栏样式
  • 整理 iOS 9 适配中出现的坑(图文)
  • iOS 应用修改状态栏和导航栏颜色
  • AFNetworking3.1 基本使用
  • Xib使用之TableViewCell.xib中创建多个Cell
  • 自动布局之autoresizingMask使用详解(StoryboardCode)
  • JSPatch技术文档
  • 11111111
  • 5、React组件事件详解
  • EOS是什么
  • Java深入 - 深入理解Java集合
  • Python3爬取英雄联盟英雄皮肤大图
  • RxJS: 简单入门
  • SQLServer之创建数据库快照
  • tweak 支持第三方库
  • 从零开始学习部署
  • 记录一下第一次使用npm
  • 批量截取pdf文件
  • 使用 @font-face
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 使用putty远程连接linux
  • AI算硅基生命吗,为什么?
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • FaaS 的简单实践
  • 阿里云重庆大学大数据训练营落地分享
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #pragma 指令
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (1)bark-ml
  • (C语言)fgets与fputs函数详解
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (转)Linux下编译安装log4cxx
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • [android] 切换界面的通用处理
  • [AUTOSAR][诊断管理][ECU][$37] 请求退出传输。终止数据传输的(上传/下载)
  • [bzoj 3124][sdoi 2013 省选] 直径
  • [C/C++]数据结构 循环队列
  • [C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数
  • [c++] C++多态(虚函数和虚继承)