Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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/AJAX/send-to-server文本和带有JSON的文件_Javascript_Jquery_Ajax_File_Upload - Fatal编程技术网

Javascript/AJAX/send-to-server文本和带有JSON的文件

Javascript/AJAX/send-to-server文本和带有JSON的文件,javascript,jquery,ajax,file,upload,Javascript,Jquery,Ajax,File,Upload,我正在开发一个小软件,允许插入我客户的商店产品、描述文本和产品照片,然后我需要使用$.ajax()发送文本和文件,只需一次调用 我没有问题发送文本或文件单独,与2个电话,但我可以做它与1 var formData = new FormData(); formData.append("file-identifier", $('#file-identifier').get(0).files[0]); formData.append("variable", $.session.get("variabl

我正在开发一个小软件,允许插入我客户的商店产品、描述文本和产品照片,然后我需要使用$.ajax()发送文本和文件,只需一次调用

我没有问题发送文本或文件单独,与2个电话,但我可以做它与1

var formData = new FormData();
formData.append("file-identifier", $('#file-identifier').get(0).files[0]);
formData.append("variable", $.session.get("variable"));
$.ajax({
    url     : "path/to/file.file",
    type    : "POST",
    processData: false,
    contentType: false,
    data    : formData,
    dataType: "json",
    success : function(data){
        //handle on success
    },
    error    : function(jqXHR, textStatus, errorThrown){
        console.log(arguments);
   }
});

这是我最近用来上传jpeg和从会话变量中获取内容的变量的脚本的一个示例。将这些添加到
FormData
对象后,您可以在一个请求中传输文件和变量。

谢谢您的完整回答,但我还有一个问题:我要发送的其他信息(您称为“变量”的字段)是JSON格式的,在PHP后端通过$_POST[“变量”]我只有字符串,自动将任何类型转换为字符串。我如何解决这个进一步的问题?我想这就是你要找的。如果你满意的话,别忘了接受答案。对不起,我的朋友,你给了我很大的帮助,谢谢。使用FormData()可以将任何数据转换为字符串,但我解决了在POST中传递任何字段的问题,而不是传递一种JSON格式。多谢各位