首页 > 解决方案 > ajax 到 php post - 所有发送和接收但 php 失败

问题描述

我检查了其他问题。这不是重复的。 一切似乎都很好,数据由 php 发布和接收,但阅读整篇文章时出现问题。在这种情况下很少见的是它有时并不总是失败。我尝试并工作,然后过一会儿我再试一次,它再次发生(php 未读取帖子),然后等待再试一次,它可以工作。这种随机行为很难调试。

我将在下面展示出现错误时会发生什么(php 未读取帖子)。

html

<input type="file" id="file">

我的ajax代码

var file_contents = $( '#file' )[0].files[0];
var id ='2';    

var form_data = new FormData(); 
form_data.append( 'id', id );   
form_data.append( "file", file_contents );

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

查看我浏览器的开发人员工具,帖子看起来不错

-----------------------------3281079916952851611992156178
Content-Disposition: form-data; name="id"

2
-----------------------------3281079916952851611992156178
Content-Disposition: form-data; name="file"; filename="33.png"
Content-Type: image/png

PNG

[I removed here the file contents, too long]

-----------------------------3281079916952851611992156178--

upload.php - 非常简单的 php 代码。

<?php
print $_POST['id'];
print $_FILES['file']['name']; 

但是 php $_POST 和 $_FILES 都是空的。我可以通过什么来理解为什么 php 不接收数据?见下文!

然后我在upload.php中尝试了这个:

<?php

print file_get_contents("php://input");

响应正是我在上面的帖子中看到的。那么为什么php不阅读这篇文章呢?

然后我尝试在 AJAX 中使用GET 。

var_dump($_GET); 的响应 如下:

array(1) {
  ["_"]=>
  string(13) "1576863920768"
}

我确定我错过了一些愚蠢的东西,但这让我发疯!:(

标签: javascriptphpajax

解决方案


这很愚蠢。它看起来像用 jQuery.noConflict(); 解决了


推荐阅读