【问题标题】:POST request alerts that it was successful, but data is not sentPOST 请求提醒它成功,但没有发送数据
【发布时间】:2015-07-30 08:11:33
【问题描述】:

我有一个 JavaScript 代码,它应该将一些数据发送到服务器上的 php 文件。 JavaScript 代码会提示发布成功,但 php 文件中没有数据。控制台中没有显示错误。这里有什么问题?

代码如下:

var data = "It works";
var url = "data.php";
var http = new XMLHttpRequest();
http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.onreadystatechange = function() {
if(http.readyState == 4 && http.status == 200) {
alert("It worked");
}
}
http.send(data);

这里是代码的站点: http://mikeyrichards.freeiz.com/run.html

编辑:澄清一下,我只希望数据在 PHP 上显示为文本文件。由于某种原因,我的服务器无法打开文本文件,所以我必须使用 PHP

【问题讨论】:

  • 这是 php 代码?
  • 你的data 是一个字符串,但是要在php中访问你需要一个key/value
  • 您的数据未经过 URL 编码。格式应为param=value

标签: javascript php ajax xmlhttprequest


【解决方案1】:

您需要以类似这样的键值格式发送数据

var data = "lorem=ipsum&name=test";

【讨论】:

    【解决方案2】:

    尝试更改为:

    var data = 'data=It+works';
    

    然后您可以在 PHP 脚本中以$_POST['data'] 的身份访问它。

    不要忘记将空格编码为+%20。如果您要动态生成数据,请使用encodeURIComponent 对其进行正确编码:

    var data = 'data=' + encodeURIComponent(value);
    

    【讨论】:

    • 我只想像打开文本文件一样打开php文件。我不想处理数据。有什么办法可以直接将文本写入 php 文件?
    • 你说的是PUT请求替换服务器上的文件吗?
    • 是的,抱歉耽搁了。
    • 在这种情况下,它应该是http.open("PUT", url, true)。您需要检查您的服务器是否配置为允许PUT
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 2017-03-01
    • 2020-09-15
    • 2012-03-26
    • 2022-11-19
    • 2020-04-25
    • 1970-01-01
    相关资源
    最近更新 更多