Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
Java 此URL不支持HTTP方法GET-Tomcat_Java_Ajax_Eclipse_Tomcat - Fatal编程技术网

Java 此URL不支持HTTP方法GET-Tomcat

Java 此URL不支持HTTP方法GET-Tomcat,java,ajax,eclipse,tomcat,Java,Ajax,Eclipse,Tomcat,我知道这个问题在这里已经被问过很多次了,但是在阅读了其他线程的几十个答案和解决方案之后,我一直无法解决我的问题 我目前正在一台没有管理权限的计算机上工作,我最好的猜测是防火墙会阻止本地主机上的服务器 这是我的密码: GetTimeServlet.java Web.xml 表单数据以Post方式发送,服务器只处理Post请求。我在Eclipse中也没有收到任何错误或警告。这是怎么回事 编辑:我正在尝试POST和而不是GET。对于HTTP GET方法,您应该在servlet(GetTimeServl

我知道这个问题在这里已经被问过很多次了,但是在阅读了其他线程的几十个答案和解决方案之后,我一直无法解决我的问题

我目前正在一台没有管理权限的计算机上工作,我最好的猜测是防火墙会阻止本地主机上的服务器

这是我的密码:

GetTimeServlet.java Web.xml 表单数据以Post方式发送,服务器只处理Post请求。我在Eclipse中也没有收到任何错误或警告。这是怎么回事


编辑:我正在尝试POST和而不是GET。

对于HTTP GET方法,您应该在servlet(GetTimeServlet.java)中定义doGet方法

事实上——但我想做的是POST,而不是GET。您在Dev Tools(F12)-Network选项卡中检查了Ajax调用的状态了吗?上面说什么?您正在使用这样的绝对URL
http://localhost:8080/ajaxdemo/get-当前时间,所以您需要检查上下文路径(ajaxdemo)部分是否正确。这与您在其他页面中看到的相同吗?如果URL是正确的,并且请求实际上来自您的doPost方法,请尝试在该方法中添加一些记录器,并检查浏览器控制台中是否存在任何javascript错误?尝试在您的
ajaxAsyncPostRequest()
中添加一个警报/console.log,并查看当您单击该链接时控件是否真的出现了。您可以下载一个浏览器插件REST客户端,发出POST请求并测试它是否按预期工作。这将排除服务器端。另外,通过放弃对IE6和更早版本的支持来简化代码。不应指望任何人仍然支持这些计划。
//I have tried overriding
public class GetTimeServlet extends HttpServlet 
{

    private static final long serialVersionUID = 1L;

    public void doPost (HttpServletRequest request,HttpServletResponse response) 
            throws ServletException, IOException 
    {
        StringBuilder sb = new StringBuilder();
        BufferedReader reader = request.getReader();
        try {
            String line;
            while ((line = reader.readLine()) != null) {
                sb.append(line);
            }
        } finally {
            reader.close();
        }
        response.setHeader("Cache-Control", "no-cache");
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Access-Control-Allow-Origin", "*");
        PrintWriter out = response.getWriter();
        newtest.DbQueries dbq = new newtest.DbQueries();
        out.print((int) Math.round(dbq.getSiteScore(sb.toString())));
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>exjobb</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
        <servlet-name>GetTime</servlet-name>
        <servlet-class>servlets.GetTimeServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>GetTime</servlet-name>
        <url-pattern>/get-current-time</url-pattern>
    </servlet-mapping>
</web-app>
        function ajaxAsyncPostRequest(reqURL, temp)
        {
            temp = encodeURIComponent(temp);
            var params = "site=" + temp + "&userrating=" + $("#slider").val() + "&usercomment=" + $("#comment-textarea").val()
            + "&chkbox1=" + $("#sq_checkbox1").val() + "&chkbox2=" + $("#sq_checkbox2").val();

            //Creating a new XMLHttpRequest object
            var xmlhttp;
            if (window.XMLHttpRequest){
                xmlhttp = new XMLHttpRequest(); //for IE7+, Firefox, Chrome, Opera, Safari
            } else {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); //for IE6, IE5
            }
            //Create a asynchronous GET request
            xmlhttp.open("POST", reqURL, true);

            xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

            //When readyState is 4 then get the server output
            xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4) { 
                    if (xmlhttp.status == 200) 
                    {
                        gauge.refresh(xmlhttp.responseText);
                        //alert(xmlhttp.responseText);
                    } 
                    else
                    {
                        //alert(xmlhttp.status);
                    }
                }
            };
            xmlhttp.send(params);
        }