如何使用 AJAX 添加 PHP Session 变量到 FormData 中?

How to add PHP Session variable into FormData using AJAX?

我想使用 FormData 和 AJAX 传递一个 PHP 会话变量(称为 'profileid')。我认为下面这个会起作用,但没有。为什么?

var imageData = new FormData();
imageData.append('image', $('#uploadImage')[0].files[0]);
imageData.append('profileid', <?php echo $_SESSION['profileid'];?>);

//Make ajax call here:
$.ajax({
      url: '/upload-image-results-ajax.php',
      type: 'POST',
      processData: false, // important
      contentType: false, // important
      data: imageData,
      //leaving out the rest as it doesn't pertain

您可以在 $.ajax URL 参数中添加 profileid 而不是在 FormData 中添加它:

$(document).ready(function (e) {
    $('#uploadImageForm').on('submit',(function(e) {
        e.preventDefault();
        var formData = new FormData(this);

        $.ajax({
            url: "/upload-image-results-ajax.php?profileid=<?= $_SESSION['profileid']; ?>",
            type: "POST",
            data: formData,
            cache: false,
            contentType: false,
            processData: false,
            success: function(response){
                console.log("success");
                console.log(response);
            },
            error: function(response){
                console.log("error");
                console.log(response);
            }
        });
    }));

    $('#uploadImage').on("change", function() {
        $("#uploadImageForm").submit();
    });
});

不要忘记将 session_start(); 放在代码的开头。