web作业

1.javascript在发送Ajax请求时,url的域名地址是使用绝对路径还是相对路径

都可以,绝对路径或相对路径, 在发起请求的时候都会处理为绝对路径的,测试肯定是相对路径比较方便些,不同服务器请求, 即为跨域用jsonp
JS在发送AJAX请求时,URL的域名地址是使用绝对地址还是相对地址
ajax的url有两种,一种是绝对路径,另一种是相对路径。

一、绝对路径: 包括协议名称、主机地址、端口、web项目名称等的完整请求路径。
例如:
$.ajax({undefined
url:“http://localhost:8080/webname/test”
});

好处:比如在webA项目中的ajax需要请求webB项目中的服务,则必须使用绝对路径。
坏处:使用绝对路径要求古地理更web项目的名称,如果webB项目重命名了,则对应的ajax请求都需要修改。

二、相对路径: 不需要协议名、主机地址、端口、web项目名称,只需要请求的路径。
假设:
项目路径:http://localhost:8080/webname
页面路径:/webname/index.html(A页面),/webname/test/test.html(B页面)
请求路径:/request/ajaxtest,request/ajaxtest

1、如果请求路径以根路径开头,则无论什么ajax在什么页面,该请求都是相对于服务器的根路径,最后的请求路径都是:http://localhost:8080/request/ajaxtest
例如:
$.ajax({undefined
url :"/request/ajaxtest"
});
原因:以"/"开头,是表示该请求基于从服务器的根路径,即不是相对于html的路径。

2、如果请求不以根路径开头(常见),则该请求路径是相对于html所在的路径的。

a、假如请求在A页面,最终的请求路径是:http://localhost:8080/webname/request/ajaxtest。
// /webname/index.html页面
$.ajax({undefined
url:“request/ajaxtest”
});
原因:index.html页面对应的路径是"/webname/",所以将url跟在这个路径下就是最终的请求路径。

b、假如请求在B页面,最终的请求路径是:http://localhost:8080/webname/test/request/ajaxtest。
// /webname/test/test.html页面
$.ajax({undefined
url:“request/ajaxtest”
});
原因:test.html页面对应的路径是“/webname/test/”,所以将url要跟在test这一级下面。

什么是浏览器跨域访问操作,js如何实现

浏览器从一个域名的网页去请求一个域名的资源时,域名、端口、协议任一不同,都是跨域。
三种方法实现js跨域访问:
1.基于iframe实现跨域。基于iframe跨域要求两个页面必须属于一个基础域,使用同一协议和同一端口。
2.基于script标签实现跨域。通过动态创建script标签就可以加载其它域的js文件,然后通过本页面就可以调用加载后js文件的函数,这样做的缺陷就是不能加载其它域的文档,只能是js文件,jsonp便是通过这种方式实现的,jsonp通过向其它域传入一个callback参数,通过其他域的后台将callback参数值和json串包装成javascript函数返回,因为是通过script标签发出的请求,浏览器会将返回来的字符串按照javascript进行解析执行,实现了域与域之间的数据传输。
3.后台处理方式。
js实现跨域访问

通过jsonp跨域

通过修改document.domain来跨子域

使用window.name来进行跨域

使用HTML5中新引进的window.postMessage方法来跨域传送数据

具体方法参考:
https://blog.csdn.net/kongjiea/article/details/38867531

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值