javascript - 如何用javascript编写From Upload Stream的请求 header ?

标签 javascript ajax http http-headers xmlhttprequest

由于文件上传需要修改,所以我尝试手动组合上传字符串:

    function submitdata(){
        //var data = new FormData();
        var sb="";
        var BOUNDARY = "-------------------------4827543632391";

        sb+="--"+BOUNDARY;
        sb+="\r\n";
        sb+="Content-Disposition: form-data; name=\"fileinput\"    filename=\"004.jpg\" \r\n";
        sb+="Content-Type: image/jpeg\r\n\r\n";
        .....
        var reader = new FileReader();
            reader.readAsBinaryString(data);
        //fd.append("blob", sb);
        reader.onload = function(e){
            sb+=this.result;
            sb+="\r\n--" + BOUNDARY + "--\r\n";

            var datasubmit="Content-Type:multipart/form-data; boundary="+BOUNDARY+"\n";
            datasubmit+="Content-Length: "+eval(sb.length)+ "\r\n\r\n";
            var xhr = new XMLHttpRequest();
            xhr.open("POST", "addimages");
            xhr.setRequestHeader("Content-Type", "multipart/form-data");
            xhr.overrideMimeType('multipart/form-data');
            xhr.sendAsBinary(datasubmit+sb);

           }


    }

每次提交数据体是:

Content-Type:multipart/form-data; boundary=-------------------------4827543632391
Content-Length: 283111

我想把上面的部分放在听到而不是正文!!!

---------------------------4827543632391 
Content-Disposition: form-data; name="fileinput" filename="004.jpg" 
Content-Type: image/jpeg 


ÿØÿà�JFIF������ÿÛ�C�  %# , #&')*)-0-(0%()(ÿÛ�C   (((((((((((((((((((((((((((((((((((((((((((((((((((ÿÀ�@m"�ÿÄ����������� ÿÄ�µ���}�!1AQa"q2¡#B±ÁRÑð$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ�������� ÿÄ�µ��w�!1AQaq"2B¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz....

我想要的是:

Request Headers From Upload Stream
Content-Length: 283122
Content-Type: multipart/form-data;boundary=---------------------------23281168279961

我只是不知道我的

内容类型:多部分/表单数据; ......到流表单的标题部分

谁能给我一个带有“Content-Type:multipart/form-data;..”头部的http包的例子?或者告诉我如何编写java脚本将Content-Type:放在头部。 我尝试了 xhr.setRequestHeader(),它写入了 httphearder 但不写入上传流 header 。

最佳答案

我可能会误解,但您需要通过 xhr.setRequestHeader() 方法调用创建新 header 。

当你这样做(并看到)时,你只是在正文前面添加 Material 。 setRequestHeader() 方法(将 header 名称和内容作为两个参数)将创建要发送的新 header 。请注意,您可以通过多次调用该方法来创建任意数量的 header 。

希望这有帮助。

关于javascript - 如何用javascript编写From Upload Stream的请求 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12761296/

相关文章:

php - 服务器响应中的 "Connection: Keep-Alive"

javascript - 如何更改此代码以使用给定元素

javascript - 通过单击子图标清除父输入 - Javascript(无 JQuery)

javascript - 如何仅在页面完全呈现后才显示 div

rest - 使用 Http Post 发送状态数据是一个好习惯吗?

安卓下载远程内容

javascript - Ext.bind 在 ExtJS 中看不到函数

ajax - 如果服务器发送Etag,是否需要在ajax请求中以编程方式设置if-no-match

jquery - 如何在 jQuery 中的 POST 请求中转义 & ?

php - 使用多个 AJAX 操作的正确方法?