Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我让JavaScript使用XMLHTTPREQUEST运行PHP脚本时,找不到PHP文件路径(404错误);怎么办?_Javascript_Php_Xml_Spring_Spring Mvc - Fatal编程技术网

当我让JavaScript使用XMLHTTPREQUEST运行PHP脚本时,找不到PHP文件路径(404错误);怎么办?

当我让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

当我点击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部分):

<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并不能解决这个问题。