$_POST and $_FILES empty after AJAX file upload
<p>I am new to web development, and the latest problem I have been having is ajax file uploading...</p>
<p>Right now I have two HTML input fields; a file input and a button.</p>
<p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;input type="file" name="Frame" id="Frame_"/&gt;
&lt;input type="button" name="FrameButton" id="FrameButton_" value="UPLOAD"/&gt;</code></pre>
</div>
</div>
</p>
<p>After the button is clicked I then call a function that has the following code..</p>
<p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>var frame = document.getElementById('Frame_');
var frameImg = frame.files[0];
var form_data = new FormData();

form_data.append('frame', frameImg);

jQuery.ajax({
    url : './handler.php',
    type : 'post',
    data  :  form_data
    contentType : false,
    processData : false,
    success : alert("Frame Uploaded")
});</code></pre>
</div>
</div>
</p>
<p>When I var_dump() the $_POST and $_FILES array it shows both arrays as empty. This is despite the &quot;Request Payload&quot; in Chrome Dev reading</p>
<blockquote>
<p>Content-Disposition: form-data; name=&quot;frame&quot;; filename=&quot;GoldFrame.jpg&quot;</p>
<p>Content-Type: image/jpeg</p>
</blockquote>
<p>In which I am under the impression that this means the information of the file that I select on the front end is being successfully &quot;post&quot;ed to my handler.php file. Is this a wrong interpretation?</p>
<p>Either way, could someone please give me an answer to my problem? Or atleast point to a resource that might have my answer? There seem to be many similar questions along the same lines, but I haven't seen one that has a solid answer.</p>
<p>I have used iframes for this kind of thing in the past, but that seems like a really hacky method, and I would like to have the flexibility to use ajax for this kind of task in the future.</p>
<p>Help is appreciated.</p>