我正在使用ajax迈出第一步。有人可以帮我理解为什么ajax send()不更新地址栏?连接工作,但它始终打印“没有变量!” PS:请记住,我不想使用JQuery。
TEST.HTM
Multiple markers at this line
- Type mismatch: cannot convert from T to K
- The method toMap(Function<? super T,? extends K>, Function<? super T,? extends U>)
in the type Collectors is not applicable for the arguments ((<no type> k) -> {}, Boolean)
phpAjax.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="posts"></div>
<script type="text/javascript">
var addressVariables = "sendvariable=test";
var hr = new XMLHttpRequest();
var url = "phpAjax.php";
hr.open("GET", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function () {
if (hr.readyState == 4 && hr.status == 200) {
var returnData = hr.responseText;
document.getElementById("centreSection").innerHTML = returnData;
}
};
hr.send(addressVariables);
</script>
<section id="centreSection"></section>
</body>
</html>
答案 0 :(得分:0)
您可以在http://www.w3schools.com/js/js_ajax_http_send.asp阅读有关ajax的文章,它将帮助您了解如何向服务器发送请求 现在您可以尝试下面的代码(test.htm):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="posts"></div>
<script type="text/javascript">
var addressVariables = "sendvariable=test";
var hr = new XMLHttpRequest();
var url = "phpAjax.php"+'?'+addressVariables;
hr.open("GET", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function () {
if (hr.readyState == 4 && hr.status == 200) {
var returnData = hr.responseText;
document.getElementById("centreSection").innerHTML = returnData;
}
};
hr.send();
</script>
<section id="centreSection"></section>
</body>
</html>
答案 1 :(得分:0)
这里的问题非常简单,使用GET请求send()函数没有参数。这些参数仅适用于POST请求。
为了将GET变量传递给PHP脚本,您必须像在css.cutter的示例中一样将它们附加到URL中。
XMLHttpRequest的规范可以在这里找到:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send,这解释了很多!
答案 2 :(得分:0)
您的代码问题在于您使用 POST 而不是 GET 方法。
在 GET 方法中,您可以在网址中发送数据。而您正在做的是将其作为 POST 方法样式发送。
您的脚本应如下所示:
<script type="text/javascript">
var addressVariables = "sendvariable=test";
var hr = new XMLHttpRequest();
var url = "phpAjax.php?"+addressVariables;
hr.open("GET", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function () {
if (hr.readyState == 4 && hr.status == 200) {
var returnData = hr.responseText;
document.getElementById("centreSection").innerHTML = returnData;
}
};
hr.send();
</script>