封装好的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. Css入门课程 Css基础

    html css javascript三者关系 html是网页内容的载体 css是网页内容的表现,外观控制 javascript是网页逻辑处理和行为控制 css相对于html标签属性的优势 css简化 ...

  2. 【Redis】- 延时任务

    引言 在开发中,往往会遇到一些关于延时任务的需求.例如 生成订单30分钟未支付,则自动取消 生成订单60秒后,给用户发短信 对上述的任务,我们给一个专业的名字来形容,那就是延时任务.那么这里就会产生一 ...

  3. BZOJ 1040 骑士(环套树DP)

    如果m=n-1,显然这就是一个经典的树形dp. 现在是m=n,这是一个环套树森林,破掉这个环后,就成了一个树,那么这条破开的边连接的两个顶点不能同时选择.我们可以对这两个点进行两次树形DP根不选的情况 ...

  4. bzoj 1207: [HNOI2004]打鼹鼠 (dp)

    var n,m,i,j,ans:longint; x,y,time,f:..]of longint; begin readln(n,m); to m do readln(time[i],x[i],y[ ...

  5. 【QQ】前端实现QQ会话功能

    <a href="tencent://message/?uin=客服QQ号码&Menu=yes" target="blank"></a ...

  6. 洛谷 P4592 [TJOI2018]异或 解题报告

    P4592 [TJOI2018]异或 题目描述 现在有一颗以\(1\)为根节点的由\(n\)个节点组成的树,树上每个节点上都有一个权值\(v_i\).现在有\(Q\)次操作,操作如下: 1 x y:查 ...

  7. kafka-zk-安装测试初体验

    第一步: 安装 安装工具brew install kafka 会自动安装依赖zookeeper 注:安装配置文件位置 /usr/local/etc/kafka|zookeeper 注: #tickTi ...

  8. linux下,手动切换jdk

    1.首先将自定义的jdk目录安装到alternatives中 seven@ThinkPad:~/srcAndroid/src4..4_r1$ sudo update-alternatives --in ...

  9. Python图像处理库(PIL)

    官方:(详细)http://pillow.readthedocs.io/en/3.1.x/reference/ImageDraw.html http://pillow.readthedocs.io/e ...

  10. Jokewithpermutation (DFS)

    Problem J. Jokewithpermutation Input file: joke.inOutput file: joke.out Joey had saved a permutation ...