前端发送请求时,报路径错误的两种类型404和500

一、404

jquery.min.js:2       
       GET http://localhost:8080/***/***Server/*** 404 (Not Found)

当报404时,代表你的路径真的写错了,请求时找不到;

1.这时候一定好好经检查一下自己的路径是否正确,

如果用的是eclipse,可以通过右键文件然后 > Copy Qualified Name  复制到完整路径

2.注意,带参数时不要把 ? 和& 弄混了

?加在路径的末尾,首个参数之前,作为路径和参数之间的分隔;如果是多个参数的话 & 加在参数和参数之间,作为参数之间的分隔。

3.另一种情况,如果你的html文件没有直接在WebContent文件下,而是在WebContent文件下的又一个文件下如:

这时候你在写请求的路径时前面要加 ../ (表示返回上一级) 

例:下面是一个用Jquery写的Ajax请求案例

$(".btn").on('click',function(){
	var acc = $('#acc').val()
	var pw = $('#pw').val()
	if(!acc){
		alert("请输入账号")
	}else if(!pw){
		alert("请输入密码")
	}else{
		$.ajax({
			type:"get",
			url:"../loginServer?action=login&acc="+acc+"&pw="+pw,
			success:function(value){
				console.log(value)
			},
			error:function(){
				alert("登录请求失败了!")
			}
		})
	}
})

一、500 

jquery.min.js:2 
       
       GET http://localhost:8080/***/***Server***** 500 (Internal Server Error)

1.这种情况代表你的路径可能没有问题,而问题出在了你的Serverlet中,很可能是其中代码的逻辑有问题,或者忘记写response.getWriter().write(res); (回复语句)了,前端没有接收到response回复,因而报错。

例如:下面是一个错误,并附带解决技巧

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/json;charset=utf-8");
		String action = request.getParameter("action");
		String res = "";
		String sql = "";
		String[] columns;
		switch(action) {
		case"login":{
			String acc= request.getParameter("acc");
			String pw = request.getParameter("pw");
			System.out.println("进来了1");
			
			int i = 2/0; //这里我们让除数等于零,创造一个错误
			
			System.out.println("进来了2");
			break;}	
		}
		
		response.getWriter().write(res);
	}

页面控制台运行结果:

java端运行结果:

很明显,第一个 System.out.println("进来了1");  成功输出;而第二个 System.out.println("进来了2");  没有被执行;我们可以用这种插入输出语句的方式,查看请求到底是否发送成功了,并且判断错误到底出在了那部分。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 前端可以使用`fetch()`或`XMLHttpRequest`对象来发送POST请求。以下是使用这两种方法的示例: 使用fetch(): ``` fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data) }) .then(response => { // 处理响应 }) .catch(error => { // 处理错误 }); ``` 其中,`url`是请求的URL,`data`是要发送的数据,`JSON.stringify()`方法将数据转换为JSON格式。`headers`指定请求头的Content-Type为application/json,表示请求体为JSON格式。 使用XMLHttpRequest: ``` var xhr = new XMLHttpRequest(); xhr.open('POST', url, true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { // 处理响应 } }; xhr.send(JSON.stringify(data)); ``` 其中,`url`是请求的URL,`data`是要发送的数据,`JSON.stringify()`方法将数据转换为JSON格式。`setRequestHeader()`方法指定请求头的Content-Type为application/json,表示请求体为JSON格式。`onreadystatechange`事件处理程序在请求完成后处理响应。`xhr.readyState`为4表示请求已完成,`xhr.status`为200表示响应成功。 ### 回答2: 前端发送POST请求是一种常见的数据传输方式,用于向服务器发送数据并获取响应。在前端开发中,通常使用XMLHttpRequest或Fetch API来实现发送POST请求。 使用XMLHttpRequest发送POST请求的方法如下: 1. 创建一个XMLHttpRequest对象:`var xhr = new XMLHttpRequest();` 2. 设置请求方法和URL:`xhr.open("POST", "http://example.com/api", true);` 3. 设置请求头:`xhr.setRequestHeader("Content-type", "application/json");` 4. 监听请求状态改变事件:`xhr.onreadystatechange = function() { ... };` 5. 发送请求并传输数据:`xhr.send(JSON.stringify(data));` 其中,第2步中的URL是请求的目标地址,可以是相对路径或绝对路径。第3步中的请求头设置了数据的格式,可以根据实际情况选择不同的格式,常见的有application/json和application/x-www-form-urlencoded。 使用Fetch API发送POST请求的方法如下: 1. 使用fetch函数发送请求并传输数据:`fetch("http://example.com/api", { method: "POST", headers: { "Content-type": "application/json" }, body: JSON.stringify(data) })` 2. 处理响应数据:`.then(response => response.json()).then(data => { ... })` 与XMLHttpRequest相比,Fetch API提供了更简洁的语法和更强大的功能,但它不支持IE浏览器。 在发送POST请求,需要注意以下几点: 1. 确保目标服务器允许跨域请求,否则可能会遇到跨域访问限制。 2. 确定请求的数据格式,并设置正确的Content-type请求头。 3. 根据服务器的要求,将请求的数据转换为相应的格式,常见的有JSON和表单数据。 通过前端发送POST请求,可以实现与服务器的数据交互,完成用户注册、登录、提交表单等常见的操作。 ### 回答3: 前端发送 POST 请求是一种向服务器发送数据的方式,一般用于向服务器提交表单或者发送用户数据。在前端开发中,我们可以使用 JavaScript 来发送 POST 请求发送 POST 请求的基本步骤如下: 1. 创建一个 XMLHTTPRequest 对象。 2. 设置请求方法为 POST,并指定请求的 URL。 3. 设置请求头,通常为 `"Content-Type": "application/x-www-form-urlencoded"` 或者 `"Content-Type": "application/json"`。 4. 将要发送的数据转换为字符串,并作为请求参数发送。 5. 监听 XMLHttpRequest 的状态变化,等待服务器响应。 6. 接收服务器响应并处理。 这里是一个使用 JavaScript 发送 POST 请求的示例代码: ``` function sendPostRequest(url, data) { var xhr = new XMLHttpRequest(); xhr.open("POST", url, true); xhr.setRequestHeader("Content-Type", "application/json"); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { var response = JSON.parse(xhr.responseText); // 处理服务器响应 } }; var jsonData = JSON.stringify(data); // 将要发送的数据转换为 JSON 字符串 xhr.send(jsonData); } // 调用发送 POST 请求的函数 var url = "http://example.com/api"; var data = { name: "John", age: 25 }; sendPostRequest(url, data); ``` 在实际开发中,根据需求的不同,可以使用其他的方式发送 POST 请求,例如使用 jQuery 的 `$.ajax` 方法、使用 Fetch API 等。不过基本的原理和步骤都是类似的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值