所以我正在尝试建立一个非常简单的网站,以学习基本的网页设计。它只是一个随机的报价生成器 - 你点击一个按钮,它打印一些着名的报价。无论如何,我尝试使用ajax来获取引用,所以我使用了这个函数:
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("quote").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","RandomQuote.php",true)
xmlhttp.send();
}
但无论我输入RandomQuote.php的内容是什么,即使它类似于:
<?php
echo 'Hello, world';
?>
引用“div”中没有任何内容,它只是变成空白。我真的不知道这里有什么问题。感谢您的帮助!
答案 0 :(得分:0)
嗯,我不太确定,但你在说你的功能吗?你把你的ajax放在loadXMLDoc()中,所以你可能需要调用它。另一种方法是将ajax放入addEventListener中,这样当用户点击某些内容时,它就会执行。如果这不是问题,请尝试确保您的html页面中的元素的ID为&#34;引用&#34;拼写正确。有时后一种情况对我来说总是问题。
答案 1 :(得分:0)
$.get( "RandomQuote.php", function( data ) {
$( "#quote" ).html( data );
console.log( "Load was performed." );
});
不要忘记包含jQuery。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
答案 2 :(得分:0)
这是我的ajax函数,尝试使用它:
/**
* @function ajax Send ajax-request with post
* @param {string} xmlpage Target url
* @param {string} data Post parameters (like param1=val1¶m2=val2...)
* @param {Function} callback
* @return {null}
*/
function ajax(xmlpage, data, callback)
{
var xmlh = null;
if(window.XMLHttpRequest)
xmlh = new XMLHttpRequest();
else
try
{
xmlh = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(ex)
{
xmlh = new ActiveXObject("Microsoft.XMLHTTP");
}
if(xmlh)
{
xmlh.open("post", xmlpage, true);
xmlh.onreadystatechange = function(x)
{
if(xmlh.readyState==4 && typeof callback !== 'undefined')
callback(xmlh.responseText);
}
xmlh.setRequestHeader("Accept-Language","ru, en");
xmlh.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlh.send(data);
}
}
答案 3 :(得分:0)
使用您问题中的代码跟踪测试文件。它工作得很好。要么你缺少某些东西,要么是浏览器问题。我在Mozilla上测试过。要确保与浏览器无关的代码使用jQuery进行Ajax调用
test.html
<html>
<script>
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("quote").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","RandomQuote.php",true)
xmlhttp.send();
}
</script>
<div id="quote"></div>
<input type="button" value="Click Me" onclick="loadXMLDoc()"/>
</html>
RandomQuote.php
<?php
echo 'hi';
更新:jQuery版
<html>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
function loadXMLDoc()
{
$.get( "RandomQuote.php", function( data ) {
$( "#quote" ).html( data );
});
}
</script>
<div id="quote"></div>
<input type="button" value="Click Me" onclick="loadXMLDoc()"/>
</html>