【发布时间】: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