我正在尝试对网页执行简单的Ajax请求(由按钮上的onclick事件触发):
// 1. crea un oggetto di tipo XMLHttpRequest
var myRequest = new XMLHttpRequest();
// 2. usa il metodo open per richiedere una risorsa sul sito remoto
myRequest.open('GET', 'http://www.classiperlo.altervista.org/File%20comuni/ora_ajax.php?y=' + Math.random(),true);
// 3. ogni volta che cambia lo stato dell'oggetto esegue una funzione
myRequest.onreadystatechange = function () {
// 4. readyState === 4 indica che il server ha risposto
if (myRequest.readyState === 4) {
// 5. inserisce il contenuto della risposta in un DIV
document.getElementById('ajax-content').innerHTML = myRequest.responseText;
}
};
function sendTheAJAX() {
myRequest.send();
}
我不明白为什么,当我再次点击时,我会从服务器收到相同的信息。我的意思是,我的页面ora_ajax.php只是在php中显示当前时间,当我发送新请求时,这些信息不会刷新。
我的错误在哪里? 非常感谢您的帮助!
答案 0 :(得分:0)
尝试将“请求创建和打开”代码放在另一个函数中,并在要发送另一个请求时调用该函数。
function sendRequest(){
var myRequest = new XMLHttpRequest();
...
return myRequest;
}
function sendTheAJAX() {
sendRequest();
}
答案 1 :(得分:0)
感谢您的帮助。解决了简单地将所有代码放在由onclick事件触发的函数内:
function sendTheAJAX() {
// 1. crea un oggetto di tipo XMLHttpRequest
var myRequest = new XMLHttpRequest();
// 2. usa il metodo open per richiedere una risorsa sul sito remoto
myRequest.open('GET', 'http://www.classiperlo.altervista.org/File%20comuni/ora_ajax.php?y=' + Math.random(),true);
// 3. ogni volta che cambia lo stato dell'oggetto esegue una funzione
myRequest.onreadystatechange = function () {
// 4. readyState === 4 indica che il server ha risposto
if (myRequest.readyState === 4) {
// 5. inserisce il contenuto della risposta in un DIV
document.getElementById('ajax-content').innerHTML = myRequest.responseText;
}
};
myRequest.send();
}
通过这种方式,每次点击按钮都会创建一个新对象myRequest。
答案 2 :(得分:0)
将所有XHR代码放在$count = $product->discounts()->valid()->get();
$discounts = Discount::where('product_id', '=', $product->id)->get();
$mytime = Carbon::now();
sendTheAJAX
上方,然后调用整个内容,否则.send()
永远不会更改。
阅读完评论后,您可以删除该部分。似乎你不需要它。
请注意,如果您要使用它Math.random()
,则返回0到0.99999999之间的数字,而不是1.
Math.random()