当我让JavaScript使用XMLHTTPREQUEST运行PHP脚本时,找不到PHP文件路径(404错误);怎么办?
当我点击UI上的按钮让JS与PHP通信以打开一个“Hello world”页面时,我在浏览器中得到了一个“{”时间戳“:“2021-06-10T20:14:59.671+00:00”,“状态”:404,“错误”:“未找到”,“消息”:“路径”:“/Hello.PHP”}” 在Eclipse控制台中,它显示:2021-06-10 16:52:27.193警告16688---[nio-8080-exec-1]o.s.w.s.r.ResourceHttpRequestHandler:Path with“WEB-INF”或“META-INF”:projectname/src/main/webapp/WEB-INF/jsp/hello.php] 我该怎么办?这里是我的一些代码,我已经尝试了许多文件路径格式,其中我引用了PHP文件。但都是同样的错误 以下是我的一些代码: JSP页面(只是其中的Javascript部分):当我让JavaScript使用XMLHTTPREQUEST运行PHP脚本时,找不到PHP文件路径(404错误);怎么办?,javascript,php,xml,spring,spring-mvc,Javascript,Php,Xml,Spring,Spring Mvc,当我点击UI上的按钮让JS与PHP通信以打开一个“Hello world”页面时,我在浏览器中得到了一个“{”时间戳“:“2021-06-10T20:14:59.671+00:00”,“状态”:404,“错误”:“未找到”,“消息”:“路径”:“/Hello.PHP”}” 在Eclipse控制台中,它显示:2021-06-10 16:52:27.193警告16688---[nio-8080-exec-1]o.s.w.s.r.ResourceHttpRequestHandler:Path with
<button onclick=refreshData()>Say Hello</button>
<div id="content" />
<script type="text/javascript">
function refreshData(){
var display = document.getElementById("content");
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "hello.php");
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send();
xmlhttp.onreadystatechange = function() {
if (this.readyState === 4 && this.status === 200) {
display.innerHTML = this.responseText;
} else {
display.innerHTML = "Loading...";
};
}
}
</script>
打招呼
函数refreshData(){
var display=document.getElementById(“内容”);
var xmlhttp=new XMLHttpRequest();
open(“GET”、“hello.php”);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
xmlhttp.send();
xmlhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
display.innerHTML=this.responseText;
}否则{
display.innerHTML=“正在加载…”;
};
}
}
PHP
<?php
print "<p>Hello World</p>";
?>
这是在SpringMVC中使用Eclipse实现的。我在JSP文件页面上有JavaScript。我该怎么做才能解决这个问题?谢谢 我总是使用:
$('#content').load("hello.php");
只要确保您的.php文件位于具有相对URL(仅为“hello.php”)的相同文件夹,浏览器将尝试从相同的主机和端口组合加载它。在本例中,这是您的Spring MVC应用程序。您的Spring应用程序不太可能解析PHP代码。它需要一个Apache、Nginx或类似的web服务器与Spring/Tomcat一起运行,而Spring/Tomcat可能运行在不同的端口号上。您需要使用完整的url,例如
http://localhost:8080/hello.php
如果Apache/Nginx正在侦听端口8080。除非你使用的是反向代理或其他什么东西。@rickdenhaan我也试过,但没有用。还有其他想法吗?我尝试了许多不同类型的文件路径。从技术上讲,我没有任何东西映射到“/hello.php”。这就是它不起作用的原因吗?我是否需要将java控制器类中的某些内容映射到“/hello.php”?当我用localhost:8080 link+/mapped_页面替换“hello.php”时,它有点活跃了,并且做了这个映射页面在控制器类中被告知要做的事情(当我在从JS调用php脚本的不同场景中更改链接时)。您的php代码是否运行Apache或Nginx服务器?也就是说,如果你假装你的Spring应用程序不存在,你只是想测试你的PHP代码,你会如何请求它呢?这是无关的,问题是OP不知道在.load(“”)中放入什么。从普通javascript切换到jQuery并不能解决这个问题。