封装好的jq插件

  (function () {
var iframe = '<iframe name="jqUploadIframe" style="display: none"></iframe>';
function getSearchObjct(window) {
var search;
try {
search = window.location.search.substr();
} catch (e) {
return null;
}
if (search == "") return "";
var keyValue = search.split("&");
var result = {};
for (var i = ; i < keyValue.length; i++) {
var onek = keyValue[i].split("=");
result[onek[]] = decodeURI(onek[]);
}
return result;
}
function getRootPath() {
var curWwwPath = window.document.location.href;
var pathName = window.document.location.pathname;
var pos = curWwwPath.indexOf(pathName);
var localhostPaht = curWwwPath.substring(, pos);
var projectName = pathName.substring(, pathName.substr().indexOf('/') + );
return (localhostPaht + projectName);
}
var methods = {
//跨域上传
crossDomain: function (op) {
this.attr("target", "jqUploadIframe");
var $iframe = $(iframe);
var val = "window.location.href='" + getRootPath() + "/jqUpload32495982348952?data=massage'";
this.append('<input type="hidden" class="jqUpload-localhostname" ' +
'name="uploadCall" value="' + val + '"/>');
$iframe[].onload = function () {
var searchData = getSearchObjct(this.contentWindow);
if (searchData == "") {
return;
} else if (searchData == null) {
op.error();
} else if (typeof searchData == "object") {
op.success(searchData.data);
}
$iframe.remove();
$(".jqUpload-localhostname").remove();
}
this.append($iframe);
$(this).submit();
}
}
$.fn.jqAjaxUpload = function (op) {
methods.crossDomain.apply(this, [op])
}
})()

前台调用

  //需要提交的表单
var form = $("<form action='http://www.cnblogs.com/GoCircle/SaveUploadedFile' method='post' enctype='multipart/form-data'></form>");
form.append($("<input name='formFile' value='" + clearBase64 + "' />"));
form.append($("<input name='filename' value='" + fileName + "' />"));
form.append($("<input name='maintainID' value='" + maintainid + "' />"));
$('#iframeArea').append(form);//必须要追加到当前html页中 $(form).jqAjaxUpload({
isCrossDomain: true,
success: function (result) {
},
error: function () {
}
})

后台C#  mvc

   [AllowAnonymousAttribute]//允许所有请求
   [HttpPost]

   public ActionResult SaveUploadedFile(String formFile, String filename, String maintainID)
{
//这里必须为这种格式
return Content("<script>" + Request["uploadCall"].Replace("massage", isSavedSuccessfully) + "</script>");
}

js跨域上传文件 iframe的更多相关文章

  1. [javascript] ajaxfileupload.js 跨域上传文件

    原文地址: http://www.ueffort.com/jqueryajaxfileupload-js-duo-wen-jian-shang-chuan-chuan-zhi-kua-yu/ 跨域 这 ...

  2. Angular4 后台管理系统搭建(10) - 做一个通用的可跨域上传文件的组件

    写的很慢,不知不觉这是第十篇了.但是我其他事情太多,只能抽空写下.现在angular4或angular2流行的上传方式是ng2-file-upload.它的功能很强大.但是我没有配置成可以跨域上传的. ...

  3. iframe无刷新跨域上传文件并获取返回值

    通常我们会有一个统一的上传接口,这个接口会被其他的服务调用.如果出现不同域,还需要无刷新上传文件,并且获取返回值,这就有点麻烦了.比如,新浪微博启用了新域名www.weibo.com,但接口还是使用原 ...

  4. iframe无刷新跨域上传文件并获得返回值

    原文:http://geeksun.iteye.com/blog/1070607 需求:从S平台上传文件到R平台,上传成功后R平台返回给S平台一个值,S平台是在一个页面弹出的浮窗里上传文件,所以不能用 ...

  5. springmvc结合ajax实现跨域上传文件

    本方法的思路是:先在前端利用FileReader将图片转换成base64编码,然后将编码字符串形式传递到后台(前提是服务端设置了允许跨域),后端再把base64编码转换成图片. 前端代码: <! ...

  6. asp.net跨域上传文件

    前端: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" con ...

  7. POST方式跨域上传文件

    JSONP请求有限制: 第一,不能跳出两层, 第二,不支持POST. 往往解决跨域POST请求的方案是个"古老"方法, 请求同域下的iframe. 服务器端:  需要附加头信息: ...

  8. springmvc跨域上传文件问题

    把以下文件放到webapps的root文件夹下: 1.clientaccesspolicy.xml <?xml version="1.0" encoding="ut ...

  9. Ueditor1.4.3实现跨域上传到独立文件服务器,完美解决单文件和多文件上传!

    再写配置方法之前先吐槽一下网上的各种教程,TM没一个有卵用,一群傻屌不会写就别写,写了就要负责. 百度google搜了半天,全是配置什么document.domain,根域名什么的,我只想对你说: 好 ...

随机推荐

  1. vue服务端渲染简单入门实例

    想到要学习vue-ssr的同学,自不必多说,一定是熟悉了vue,并且多多少少做过几个项目.然后学习vue服务端渲染无非解决首屏渲染的白屏问题以及SEO友好. 话不多说,笔者也是研究多日才搞明白这个服务 ...

  2. 20个实用的Linux命令

    20个实用的Linux命令 2016-04-16 程序员之家 1. 命令:sl (蒸汽机车) 你可能了解 ‘ls’ 命令,并经常使用它来查看文件夹的内容.但是,有些时候你可能会拼写成 ‘sl’ ,这时 ...

  3. endnote的安装和使用必备的几个步骤(简单有效整理版)

    endnote:文献检索和管理工具 一 准备工作 endnote大客户版/破解版获取地址:http://blog.sina.com.cn/s/blog_6de000c20101n7ac.html 之所 ...

  4. 【数据库】Sql Server 2008完全卸载方法(其他版本类似)

    本文介绍如何卸载 Microsoft SQL Server 2008的方法.当您按照本文中的步骤时,您还准备系统以便可以重新安装 SQL Server 2008版本 一.    SQL2008卸载. ...

  5. set(gcf,'DoubleBuffer','on')

    设置的目的是为了防止在不断循环画动画的时候会产生闪烁的现象,而这样便不会了.在动画的制作比较常用.

  6. 当线程是继承Thread时候 实现方法是静态方法时候 可以用锁修饰静态方法 此时锁对象是类 为啥继承的线程要用 类对象呢 因为他能生成很多实例 接口实现为啥用this 呢因为他就一个

  7. OpenCV2.3.1在Win7+VS2010下的配置过程

    1.  假定电脑上已经安装了VS2010程序,若没有,首先安装vs2010.下载OpenCV2.3.1,网址:http://sourceforge.net/projects/opencvlibrary ...

  8. 关于Python的 a, b = b, a+b

    Python中有一种写法:多个值同时赋给多个变量,如:a, b = b, a+b 1. A写法 a = 0, b = 1 a, b = b, a+b print a, b #结果为:1 1 这种写法, ...

  9. 【题解】Atcoder AGC#03 E-Sequential operations on Sequence

    仙题膜拜系列...首先我们可以发现:如果在截取了一段大的区间之后再截取一段小的区间,显然是没有什么用的.所以我们可以将操作序列变成单调递增的序列. 然后怎么考虑呢?启示:不一定要考虑每一个数字出现的次 ...

  10. BZOJ4004:[JLOI2015]装备购买——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4004 https://www.luogu.org/problemnew/show/P3265 脸哥 ...