How to manually create multipart/form-data

前端 未结 2 613
天涯浪人
天涯浪人 2020-12-09 23:11

We can use .formData() of Body mixin to return a FormData representation of data at Chromium (Chrome) 60+ and Firefox 39+

Relevant specifications:

2条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-10 00:01

    You can create multipart/form-data manually with XMLHttpRequest like this example.

    function multiPost(method, url, formHash){
        var boundary = "nVenJ7H4puv"
        var body = ""
        for(var key in formHash){
            body += "--" + boundary
                 + "\r\nContent-Disposition: form-data; name=" + formHash[key].name
                 + "\r\nContent-type: " + formHash[key].type
                 + "\r\n\r\n" + formHash[key].value + "\r\n"
        }
        body += "--" + boundary + "--\r\n"
    
        var xml = new XMLHttpRequest();
        xml.open(method, url)
        xml.setRequestHeader("Content-Type", "multipart/form-data; boundary=" + boundary)
        xml.setRequestHeader("Content-Length", body.length)
        xml.send(body)
    }
    

提交回复
热议问题