Javascript xmlhttp请求不工作
我正在尝试构建一个基本的聊天网站,它有四个文件:chat.html、scripts.html、load.php和send.php 这是: chat.html: load.php:Javascript xmlhttp请求不工作,javascript,xmlhttprequest,chat,Javascript,Xmlhttprequest,Chat,我正在尝试构建一个基本的聊天网站,它有四个文件:chat.html、scripts.html、load.php和send.php 这是: chat.html: load.php: <?php error_reporting(E_ALL); ini_set("display_errors", 1); $dbhost = "localhost"; $dbuser = "root"; $dbpass = "password"; $dbname = "website"; $conn = my
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "password";
$dbname = "website";
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Error connecting to database");
mysql_select_db($dbname);
$query = "select * from chat";
$result = mysql_query($query);
$num = mysql_numrows($result);
$response = "";
$i = 0;
while($i < $num){
$response .= "<p>" . mysql_result($result, $i, "user") . ": " . mysql_result($result, $i, "line") . "</p>";
$i++;
}
mysql_free_result($result);
mysql_close($conn);
echo $response;
?>
在我浏览器的地址栏中,“herrturtrutr:HelloWorld”会在重新加载时显示在聊天窗口中
创建数据库的脚本如下所示:
create table chat (time INT(16), user VARCHAR(256), line TEXT);
所以我想它一定是scripts.js中的send()函数。在更改请求类型以获取后,我没有比这种方式更幸运的了,所以我发布了这个版本。我的代码出了什么问题?直接调用XMLHttpRequest就像使用blink标记一样:它不会带来任何好处 使用图书馆
- 你想大量使用Javascript吗?然后尝试更大的库,如JQuery或YUI
- 如果您只需要最小值,可以使用mooTools或其他小型库
- 谷歌通过其CDN(内容交付网络)提供最受欢迎的图书馆。看
- 你想大量使用Javascript吗?然后尝试更大的库,如JQuery或YUI
- 如果您只需要最小值,可以使用mooTools或其他小型库
- 谷歌通过其CDN(内容交付网络)提供最受欢迎的图书馆。看
编辑--等等,您的脚本名称是否与标记中的内容不匹配。是否触发事件?开始在其中放置一些console.log,并诊断是否正在调用您的函数 编辑--等等,您的脚本名称与标记中的内容不匹配。有几点:
$\u POST
,那么指向该脚本的AJAXopen()
也应该是POST
。同样,如果您的PHP使用$\u GET
,您的open()
应该使用GET
李>
参数中实际设置的内容。这个字符串应该能够在GET请求中放在URL的末尾[编辑:我的意思是你应该能够在浏览器中将它放在地址的末尾],并且仍然可以工作。如果没有,请确保进入params
的每个元素都是URL编码的
时间
存储为一个数字而不是字符串,那么您的查询速度将大大加快。当您只有几百条或几千条记录时,使用字符串的性能成本永远不会在开发过程中显示出来,但当您的数据库开始填满时,就会显示出来XMLHttpRequest
即使在早期IE浏览器中也可用:
if (typeof XMLHttpRequest === "undefined")
XMLHttpRequest = function () {
try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
catch (e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); }
catch (e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e) {}
//Microsoft.XMLHTTP points to Msxml2.XMLHTTP.3.0 and is redundant
throw new Error("This browser does not support XMLHttpRequest.");
};
有几件事:
$\u POST
,那么指向该脚本的AJAXopen()
也应该是POST
。同样,如果您的PHP使用$\u GET
,您的open()
应该使用GET
李>
参数中实际设置的内容。这个字符串应该能够在GET请求中放在URL的末尾[编辑:我的意思是你应该能够在浏览器中将它放在地址的末尾],并且仍然可以工作。如果没有,请确保进入params
的每个元素都是URL编码的
时间
存储为一个数字而不是字符串,那么您的查询速度将大大加快。当您只有几百条或几千条记录时,使用字符串的性能成本永远不会在开发过程中显示出来,但当您的数据库开始填满时,就会显示出来XMLHttpRequest
即使在早期IE浏览器中也可用:
if (typeof XMLHttpRequest === "undefined")
XMLHttpRequest = function () {
try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
catch (e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); }
catch (e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e) {}
//Microsoft.XMLHTTP points to Msxml2.XMLHTTP.3.0 and is redundant
throw new Error("This browser does not support XMLHttpRequest.");
};
我可能是老生常谈,但使用任何常见的AJAX库在js中发出请求都会为您节省很多时间。没有多少人可以调试XMLHttpRequest。你能推荐一个好的吗?我确实使用jquery,所以不能告诉别人。下面是基本的ajax文档。如果你稍微滚动一下,你会发现一些例子。我可能很平庸,但使用任何常见的AJAX库在js中发出请求都会为你节省很多时间。没有多少人可以调试XMLHttpRequest。你能推荐一个好的吗?我确实使用jquery,所以不能告诉别人。下面是基本的ajax文档。如果你滚动一点,你会发现一些例子。你认为脚本名与标记中的不匹配是什么?我仔细检查了一下,两个标记中的脚本名称都是“send()”,而scripts.js中的脚本名称是“send()”。我
localhost/send.php?time=12345&user=Herrturtur&line=HelloWorld
create table chat (time INT(16), user VARCHAR(256), line TEXT);
if (typeof XMLHttpRequest === "undefined")
XMLHttpRequest = function () {
try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
catch (e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); }
catch (e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e) {}
//Microsoft.XMLHTTP points to Msxml2.XMLHTTP.3.0 and is redundant
throw new Error("This browser does not support XMLHttpRequest.");
};