gpt4 book ai didi

javascript - 如何在 PHP 中接收 Ajax urlencode

转载 作者:行者123 更新时间:2023-11-27 23:54:08 26 4
gpt4 key购买 nike

我需要帮助解决这个问题,请帮助我。

我正在尝试对 PHP 进行 Ajax urlencode,但 PHP 不会像 HTML 直接发送到 PHP 时那样向我显示 POST 内容。

我在 Ajax 中使用此代码将 FormData 发送到 PHP。

用这个简单的 PHP 代码来查看是否适用于 php 文件名:“thefile.php”

使用此 JS、HTML 和 PHP 代码:

function sendme() {
var form = new FormData(document.forms['form']);
if (window.XMLHttpRequest)
var ajax = new XMLHttpRequest();
else
var ajax = new ActiveXObject("Microsoft.XMLHTTP");
ajax.open("post", "thefile.php", true);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
ajax.onreadystatechange = function() {
if (ajax.readyState == 4 && ajax.status == 200)
console.log(ajax.responseText); //to see the return on in console
};
ajax.send(form);
};
<form name="form" onsubmit="return false;">
<input type="text" name="user" required autofocus/>
<input type="password" name="pass" required/>
<input type="submit" name="send" onclick="sendme();" />
</form>
<?php
print_r($_POST); //to see $_POST Array Content
echo ' '.$_POST['user'].' '.$_POST['pass'];
?>

输入内容:用户: 用户名pass:密码

结果:

Array
(
[------WebKitFormBoundary50040KVnXutLwSAd
Content-Disposition:_form-data;_name]=>"user"

username
[------WebKitFormBoundary50040KVnXutLwSAd
Content-Disposition:_form-data; name]=>"pass"

password
------WebKitFormBoundary50040KVnXutLwSAd--
)

Notice: Undefined index: user in thefile.php on line 3
Notice: Undefined index: pass in thefile.php on line 3

最佳答案

来自the specification :

FormData: Push the result of running the multipart/form-data encoding algorithm, with object as form data set and with utf-8 as the explicit character encoding, to stream.

您正在生成一个 multipart/form-data 正文,但您显式设置内容类型 header 以声明它是 application/x-www-form-urlencoded;字符集=UTF-8

或者:

  • 指定正确的内容类型
  • 不要指定内容类型,让 XHR 为您设置

关于javascript - 如何在 PHP 中接收 Ajax urlencode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32410452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com