【发布时间】:2016-01-14 03:18:40
【问题描述】:
我正在做一些事情,但我遇到了一个非常奇怪的问题。我提交了一个 AJAX 请求,如下所示:
x = new XMLHttpRequest();
x.open('POST', url, true);
x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
x.onload = function(){
console.log(x.responseText);
};
x.send(data);
问题是,当我提交请求时,PHP 没有收到 POST 值。 data 变量如下所示:
Object { wordtype: "noun", word: "computer" }
PHP 如下:
if(!isset($_POST['wordtype']) || !isset($_POST['word'])){
echo "error 1";
exit;
} else {
$wordlist = json_decode(file_get_contents("words.json"), true);
$wordlist[$_POST['word']] = $_POST['wordtype'];
file_put_contents("words.json", json_encode($wordlist));
echo "success";
}
x.responseText 的值始终为error 1;
谢谢
雅克·玛莱
【问题讨论】:
-
您的意思是使用
onreadystatechange而不是onload?您还应该在要发送的对象上使用application/jsonContent-Type 和JSON.stringify。 -
@RalphWiggum stackoverflow.com/a/14946525/5305938
标签: javascript php ajax