【问题标题】:Php does not recognized formdata send via Ajax jsPhp 无法识别通过 Ajax js 发送的表单数据
【发布时间】:2017-02-15 09:37:47
【问题描述】:

我发送一个带有 Ajax 请求的 Formdata 并尝试在我的 php 文件中读取它。但是在 php 文件中,当我尝试用我的密钥读取 $_POST 中的内容时,我什么也看不到。我不明白为什么。

我在论坛上进行了一些研究,并试图了解为什么我的代码不能按我想要的那样工作。

编辑:

我看到了不同的链接,但我想知道没有 JQuery 有什么方法可以做到这一点。

我的ajax调用

function pageSend_DataRun ()
{
    var formElement2 = document.forms.namedItem("data_to_send_general");
    ajaxCallUrl ( "send.php",new FormData(formElement2), pageconfig_acq_generalDataCallback );
}


function ajaxCallUrl ( url, params, callback /*, ... */ )
{

 var xhr = new XMLHttpRequest();
 xhr.callback = callback;
 xhr.arguments = Array.prototype.slice.call( arguments, 3);
 xhr.onload = ajaxSuccess;
 xhr.onerror = ajaxError;
 xhr.open( "POST", url, true );
 xhr.setRequestHeader("Content-Type", "multipart/form-data");
 xhr.send( params );
}

EDIT2:

我在那里找到了解决方案:[Using FormData object, the server receives an empty POST

我在我的 ajax 配置中删除了“setRequestheader”行,它开始工作了。

    function ajaxCallUrl ( url, params, callback /*, ... */ )
    {

     var xhr = new XMLHttpRequest();
     xhr.callback = callback;
     xhr.arguments = Array.prototype.slice.call( arguments, 3);
     xhr.onload = ajaxSuccess;
     xhr.onerror = ajaxError;
     xhr.open( "POST", url, true );

     xhr.send( params );
    }

【问题讨论】:

  • 您好,能否提供ajax调用和PHP中的响应处理?
  • 你可以使用 XMLHttprequest
  • 根据您的参考代码,您没有传递任何 $_POST 数据
  • 您需要将表单数据转换为查询字符串。这对于 ajax 请求中的 jQuery 设置“processData: false, contentType: false”来说是微不足道的。

标签: javascript php ajax form-data


【解决方案1】:

我在“EDIT2”部分编辑我的问题的答案。 希望它会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 2016-03-15
    • 2019-06-22
    相关资源
    最近更新 更多