Php AJAX JQuery发送两个XHR

Php AJAX JQuery发送两个XHR,php,jquery,global-variables,Php,Jquery,Global Variables,我想向php脚本发送一张照片和四个数值(变量)。我正在使用jqueryajax进行这项工作。我必须使用两个XHR对象,因为发送文件需要特定的设置,这些设置与发送文本数据时使用的设置不同。以下是相关的JS代码: //sending a photo $.ajax({ type: "POST", url: "upload.php", data: data, cache: false, contentType: fa

我想向php脚本发送一张照片和四个数值(变量)。我正在使用jqueryajax进行这项工作。我必须使用两个XHR对象,因为发送文件需要特定的设置,这些设置与发送文本数据时使用的设置不同。以下是相关的JS代码:

//sending a photo
    $.ajax({
        type: "POST",
        url: "upload.php",
        data: data,
        cache: false,
        contentType: false,
        processData: false,
        success: function(data) {alert (data);}
    });



//sending variables
    $.ajax({
        url: "upload.php",
        data: {
            x1: x1,
            y1: y1,
            x2: x2,
            y2: y2
        },
        success: function(data) {alert(data)}
    });
x1、x2、y3、y4是已设置的变量。 数据正确发送-firebug确认

现在,一些PHP代码:

<?php


$x1 = $_GET['x1'];
$y1 = $_GET['y1'];
$x2 = $_GET['x2'];
$y2 = $_GET['y2'];

$file= $_FILES['file'];

var_dump($_GET);
var_dump($file);
?>

这是我的问题。var_dump($file)给出了理想的结果,但变量$x1、$x2、$y1、$y2为空。带照片的XHR对象将删除$\u GET数组的内容。当我将这些XHR对象发送到两个不同的脚本时,一切都井然有序,var_dumps会显示$_GET和$_FILES数组的正确内容

我想有一个php脚本中的照片和变量。变量是裁剪照片片段所需的坐标。有可能吗


关于。

正如mansoulx在评论中所写,我将photo(数据变量)和变量(x1、x2、y1、y2变量)放在同一个FormData对象中:

var data = new FormData();  
data.append('file', files[files.length-1]);
data.append('coordinates', $('#form').serialize());
我使用AJAX发送数据变量:

$.ajax({
    type: "POST",
    url: "upload.php",
    data: data,
    cache: false,
    contentType: false,
    processData: false,
    success: function(data) {alert (data);}
});

一切正常,问题已解决:)

您能告诉我第一次发送的数据变量的值是多少吗?数据变量是一张照片,它是一个FormatData对象为什么不以序列化形式发送照片和其他变量。你把你的x1,x2。。。在隐藏字段中,通过一个ajax post查询发送所有内容,因此不需要使用2个xhr!你是对的!我没想过<代码>变量数据=新FormData();data.append('file',files[files.length-1]);data.append('coordinates',$('#form').serialize()我添加了最后一行,现在一切正常!非常感谢你的建议。写下你的解决方案作为答案!那可能会有帮助!