无法从外部PHP文件中的AJAX调用中读取POST数组
Cannot read POST array from AJAX call in external PHP file
我已经尝试了所有的解决方案,我可以谷歌,但我不能读取数据从POST数组在我的外部PHP文件。这是文本字段的HTML。
<form>
<textarea id="comment_text_area" name="comments" rows="5" cols="40">
</textarea>
<label for="comment_text_area">Comment:</label>
<br>
<input type="submit" name="submit" value="Submit" onclick="SaveComments()">
</form>
…和JS函数进行AJAX调用
function save()
{
var data = document.getElementById("comment_text_area");
var xhr = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
xhr.open('POST', 'save_comments.php', true);
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && xhr.status == 200)
{
alert("Comments saved!");
}
}
xhr.send(data);
}
…和PHP文件
<?php
if(isset($_POST['comments']))
{
$data = htmlentities($_POST['comments']);
$file = "comments.txt";
file_put_contents($file, $data, FILE_APPEND | LOCK_EX);
}
else
{
$data = "empty";
$file = "comments.txt";
file_put_contents($file, $data, FILE_APPEND | LOCK_EX);
}
?>
我所知道的是工作:AJAX调用成功完成,脚本正在运行,"空"正在写入。
我尝试过的事情:
我读到事件侦听器函数应该在创建HTML元素之前附加到它们,这似乎是违反直觉的。没有改变。
使用xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
不工作。而且,根据我所做的研究,这难道不应该只对GET调用有必要吗?(我需要使用POST)
- 使POST调用同步。没有什么改变。
我知道你传递的元素的名称需要是你在PHP脚本中依赖的,但它不工作。我不想设置form action="因为我不想重定向,这就是我使用AJAX的原因。最后,我注意到,它在我点击提交时改变了URL,这是我期望从GET中看到的。这是GET特有的,对吧?我清楚地把它标记为POST。
有人看到我做错了什么吗?
注:-拜托,如果是JS方面的东西,不要jQuery。到目前为止,我一直在回避它,我正努力保持这种状态。
您需要一个变量来传递请求,而不仅仅是值
xhr.send("comments="+data);
所以在服务器端你可以通过参数名检索数据
相关文章:
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- 调用Javascript中的Python函数,读取静态文件(Flask)
- 如何在ajax成功调用中读取解析后的json数据
- 读取通过Ajax调用发送的PHP中的json数据
- 使用Javascript调用从MySQL数据库读取网站内容的PHP文件
- 未捕获的类型错误:调用函数时无法读取未定义的属性“then”
- 收到错误消息:“未捕获的类型错误:无法读取 null 的属性'焦点'”时尝试调用 focus() 到元素
- 在对象中调用对象方法 - 错误:无法读取未定义的属性
- 使用参数调用 javascript 函数并在页面加载中读取返回值
- 如何读取空响应正文的 ajax post 调用的响应标头
- 使用 zip.js 通过 Node.js 上的 XMLHTTP/ajax 调用读取 zip 文件
- 未捕获的类型错误:在 Ajax 调用后无法读取未定义的属性“appendChild”
- 调用php函数读取数据库时没有out
- 未调用Angularjs服务方法,TypeError:无法读取属性'
- 在调用程序中获取函数从文件中读取的值:Windows应用商店JavaScript应用程序
- 得到"无法读取属性'nodeType'“为空”;调用ko.applyBindings时
- Mootools“无法读取未定义的属性'调用'”
- 如何调用读取条形码的本地移动应用程序并将其数据返回到HTML
- 流星同步和异步调用读取文件
- 点击按钮后,点击如何使用javascript发出请求,并使用ajax MVC Kendo UI网格调用读取方法