关于Ajax中URL的备忘

本文探讨了Ajax中URL的使用,区分了绝对路径和相对路径的区别。在项目部署于http://jsy-005:8080/XY_Plan/时,Ajax请求的URL路径选择至关重要。以'/'开头的URL会从根路径开始拼接,而非'/'开头则会基于当前页面路径拼接,可能导致404错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ajax中的URL有绝对路径和相对路径之分

项目部署路径为:http://jsy-005:8080/XY_Plan/

页面的请求地址为:http://jsy-005:8080/XY_Plan/

注:jsy-005的IP地址为:192.168.0.105

1.如果Ajax中URL写成如下的格式

$.ajax({
  			url:"/XY_Plan/LoginServlet",
  			data:user,
  			type:"post",
  			dataType:"json",
  			success:function(json){
  				alert("111")
  			},
  			error:function(err){
  				alert(err.status)
  			}
  		});	

那么,最后的请求路径为http://jsy-005:8080/XY_Plan/LoginServlet

这是因为url中以“/”开头,意思是直接找到当前页面的url路径“http://jsy-005:8080”然后拼接上“/XY_Plan/LoginServlet”;

2.如果Ajax中URL写成如下的格式

$.ajax({
  			url:"XY_Plan/LoginServlet",
  			data:user,
  			type:"post",
  			dataType:"json",
  			success:function(json){
  				alert("111")
  			},
  			error:function(err){
  				alert(err.status)
  			}
  		});	
那么,最后的请求路径为“http://jsy-005:8080/XY_Plan/XY_Plan/LoginServlet”

这里url中没有以“/”开头,那么会找到当前页面的url地址“http://jsy-005:8080/XY_Plan”再拼接上“/XY_Plan/LoginServlet”,这样就会导致404错误;

3.如果Ajax中URL写成如下的格式

$.ajax({
  			url:"http://192.168.0.105:8080/XY_Plan/LoginServlet",
  			data:user,
  			type:"post",
  			dataType:"json",
  			success:function(json){
  				alert("111")
  			},
  			error:function(err){
  				alert(err.status)
  			}
  		});	
这种写法最后的请求路径就为ajax中url路径“http://192.168.0.105:8080/XY_Plan/LoginServlet”,

但如果按上面的写法会报异常:

XMLHttpRequest cannot load http://jsy-005:8080/XY_Plan/LoginServlet. No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://192.168.0.105:8080' is therefore not allowed access.
这是由于Ajax的跨域导致的,应将ajax的url改为和页面地址栏中的url域名改为一致即可http://jsy-005:8080/XY_Plan/LoginServlet”,

或者将地址栏的url改为“http://192.168.0.105:8080/XY_Plan/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值