我正在尝试使用 AJAX 执行一个 PHP 文件,该文件应该更新一个 txt 文件
这是我的 JavaScript
function getXMLHttp()
{
var xmlHttp
try
{
//Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
//Internet Explorer
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
alert("Your browser does not support AJAX!")
return false;
}
}
}
return xmlHttp;
}
function MakeRequest()
{
var xmlHttp = getXMLHttp();
var host = window.location.hostname;
var dir1=window.location.pathname.split("/")[1];
var dir2=window.location.pathname.split("/")[2];
var p = document.getElementById(''CTI_IP'').value;
var url=''http://''+host+''/''+dir1+''/modules/company/include/file.php?var=''+p;
xmlHttp.open("POST",url,true);
if (xmlHttp.readyState==4)
{
xmlHttp.send();
}
}
URL很好,我提醒了它,复制粘贴了链接,php文件运行良好并更新了txt文件,但它在ajax中不起作用? 为什么
谢谢!!
您有一个语法错误:
var p = document.getElementById(''CTI_IP'').value;
^HERE
(以及散布在整个中的类似内容)。
这应该显示在浏览器的JavaScript错误控制台中。
当你构建URL时,你构建错误。您正在转义不需要转义的引号。它应按如下方式构建:
var url = "http://" + host + "/" + dir1 + "/modules/company/include/file.php?var=" + p;
由于某种未知原因,您也在转义getElementById调用上的引号。它应该按如下方式调用:
var p = document.getElementById("CTI_IP").value;
唯一想要转义引号的时间是您希望将它们包含在字符串中时。在这些情况下,您不应该转义它们,因为它们表示字符串 - 它们不应该被包含。
我建议你研究一下字符串在Javascript中是如何工作的。
修复这些错误后,请删除xmlHttp.send()
周围的 if 块。
你有:
if (xmlHttp.readyState==4)
{
xmlHttp.send();
}
但应该只有
xmlHttp.send();
最后,由于您没有将其包含在上面的示例中,因此我假设您实际上并没有在任何地方调用MakeRequest()
函数。您必须在代码中的某个位置调用该函数才能使其实际执行该函数。
只需按如下方式调用该函数:
MakeRequest();