处理springboot抛出405或415的post请求

ut6juiuv  于 2021-07-04  发布在  Java
关注(0)|答案(0)|浏览(281)

嗨,伙计们,我刚开始和spring boot和web开发人员一起工作。。所以我要做的是检索从客户端发送的数据,并通过json将其发布到我的html中
下面是一些代码:
这是我的javascript

function submitResgister(){
let rese = document.querySelector('.result');
let name = document.querySelector('#regusername');
let password = document.querySelector('#regpassword');
let email = document.querySelector('#regemail');

//XHR
let xhr = new XMLHttpRequest();
let url = "/reg";
xhr.open("POST",url,true);

//set to JSON
xhr.setRequestHeader("Content-Type","application/JSON;charset=UTF8");

//state changecallback
xhr.onreadystatechange = function(){
    if(xhr.readyState === 4 && xhr.status === 200){

        //print data received from server
        rese.innerHTML = this.responseText;
    }
}

var data = JSON.stringify({"name": name.value,"password":password.value,"email":email.value });
xhr.send(data);

}
我的索引.html

<form id="regform" method="POST">
  <input type="text" id="regusername" class="fadeIn second" name="register" placeholder="username">
  <input type="text" id="repassword" class="fadeIn third" name="register" placeholder="password">
  <input type="text" id="regemail" class="fadeIn fourth" name="register" placeholder="Email">
  <input type="submit" onclick="submitRegister()" class="fadeIn fourth" id="register" value="Submit">

  <p class="result"></p>
</form>

我的springboot控制器

@RestController
public class indexController {
    @GetMapping(value = "/login")
    String goHomepage(HttpServletResponse res) throws IOException{

        return ("homepage.html");
    }

    @PostMapping(value = "/reg", consumes = "application/json", produces = "application/json")
    void registeruser(HttpServletResponse res) throws IOException{

    }
}

它总是抛出这样一个:
此应用程序没有/error的显式Map,因此您将此视为回退。
sun sep 06 05:38:32出现意外错误(类型=方法不允许,状态=405)。不支持请求方法“post”org.springframework.web.httprequestmethodnotsupportedexception:不支持请求方法“post”
已经试过像这样的 curl 命令了
c:\windows\system32>curl-i-x post-h'内容类型:application/json'-d'{“name”:“galih”,“password”:“asu”,“email”:test@gmail.com"}' http://localhost:8080/注册
curl:(6)无法解析主机:应用程序
curl:(3)[globbing]第40列中的右大括号/方括号不匹配
http/1.1 415
内容类型:application/json
传输编码:分块
日期:2020年9月5日星期六22:59:09 gmt
我在chrome上使用了“f12”来检查这是否正确,但它显示的响应头只允许get和head,内容类型:text/html;字符集=utf8;
请求头内容类型:application/x-www-form-urlencoded

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题