我想使用三种技术开发新闻报道:PHP,Javascript和AJAX。
首先,我创建了一个PHP函数getFeed()
来从一个数组上的新闻网站获取数据,然后我使用以下代码返回JSON:echo json_encode($articles, true);
其次,我的目标是使用AJAX和Javascript重复调用getFeed()
函数,这是我的javascript代码:
<script type="text/javasript">
var xmlhttp=false;
function begin() {
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else{
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
xmlhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200){
var jsonContent=JSON.parse(this.responseText);
displayT(jsonContent);
}
};
// rssnews.inc.php contain the getFeed() function
xmlhttp.open('GET','rssnews.inc.php', true);
xmlhttp.send();
}
// displayT(content) function display the JSON element
function displayT(content){
var out = "";
var i;
for(i = 0; i < arr.length; i++) {
out += '<h4><a href="' + arr[i].link+ '">' +
arr[i].title + '</a></h4><br>';
}
document.getElementById('item').innerHTML = out;
}
</script>
在HTML页面上,我有以下组件一个按钮(id="start"
) - 点击执行begin()
函数,一个div容器(id="Ticker"
)和一个div({{1用于使用AJAX显示数据
id="item"
当我点击开始按钮时,我没有得到json数据。
如何解决此问题,如何确保此AJAX调用是我的Ticker最合适的方式。 谢谢!
答案 0 :(得分:0)
该错误实质上是说您尝试使用AJAX调用获取的文件不存在于指定位置(即http://localhost/rss/rssnews.inc.php
)。
您正在使用相对路径,它会搜索&rs; rssnews.inc.php&#39;在同一个文件夹中。要转到父目录,请使用../
。
或使用绝对路径,如http://localhost/rss/rssnews.inc.php
中所示。 (替换为PHP脚本的绝对路径)
(在HTTP 401解决后)
displayT
函数将content
作为输入,然后返回arr
,这是未定义的。
假设content
实际上是一个包含所需格式数据的数组,请将arr
替换为content
:
function displayT(content){
var out = "";
var i;
for(i = 0; i < content.length; i++) {
out += '<h4><a href="' + content[i].link+ '">' +
content[i].title + '</a></h4><br>';
}
document.getElementById('item').innerHTML = out;
}