Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jqueryajax发送多部分/表单数据,包括一个文件和其他json表单数据_Javascript_Jquery_Ajax_Multipartform Data_Form Data - Fatal编程技术网

Javascript 使用jqueryajax发送多部分/表单数据,包括一个文件和其他json表单数据

Javascript 使用jqueryajax发送多部分/表单数据,包括一个文件和其他json表单数据,javascript,jquery,ajax,multipartform-data,form-data,Javascript,Jquery,Ajax,Multipartform Data,Form Data,我有一个HTTP API,它等待具有以下结构的多路径/表单数据消息: --boundary Content-Disposition: form-data; name=""Meta"" Content-Type: application/json {""Title"":""title"",""Description"":""description"",""Number"":3} --boundary Content-Disposition: form-data; name=""file""; f

我有一个HTTP API,它等待具有以下结构的多路径/表单数据消息:

--boundary
Content-Disposition: form-data; name=""Meta""
Content-Type: application/json

{""Title"":""title"",""Description"":""description"",""Number"":3}
--boundary
Content-Disposition: form-data; name=""file""; filename=""fileName""
Content-Type: text/plain
Content-Transfer-Encoding: 7BIT

some text content
--boundary
我试图使信息的结构如下所示:

var data = new FormData();
 data.append("Meta", "Content-Type: application/json\r\n\r\n" + [JSON.stringify({ Title: "title", Description: "description", Number: 3})] + "\r\n");
data.append('File', document.getElementById("file").files[0]);

$.ajax({
    url: myservice,
    data: data,
    cache: false,
    processData: false,
    contentType: false,
    type: 'POST',
    success: function (data, status, req) {
        alert("OK"+req);
    },
    error: function (req, status, error) {
        alert("ERROR"+req);
    }
});
但是,我无法将内容类型添加到非文件部分

使用这种方法,我在内容配置和内容类型之间创建了一条带有剩余换行符的消息

-----------------------------10743159127866
Content-Disposition: form-data; name="Meta"

Content-Type: application/json

{"Title":"title","Description":"description","Number":3}

-----------------------------10743159127866
Content-Disposition: form-data; name="File"; filename="b839f0cc60ac4fb68f826b20cd02873b.pdf"
...

$(文档).ready(函数(){
$(“#提交”)。单击(函数(){
var fileInput=document.getElementById('image');
var file=fileInput.files[0];
var formData=new formData();
formData.append('file',file);
$.ajax({
url:“url.php”,
类型:“POST”,
数据:“文件=”+文件,
cache:false,
成功:功能(res){
警报(res);
},
错误:函数(err){
警惕(err);
}
});
}); 
});

您是否检查了引号(“)?引号可能会破坏您的代码
<script type="text/javascript">
$(document).ready(function() {
    $("#submit").click(function() {
        var fileInput = document.getElementById('image');
        var file = fileInput.files[0];
        var formData = new FormData();
        formData.append('file', file);
        $.ajax({
            url: "url.php",
            type: "POST",
            data: "file="+file,
            cache: false,

            success: function(res) {
                alert(res);
            },
            error: function(err){
                alert(err);
            }
        });
    }); 
});
</script>