JSONP 和 CORS 的区别
-
JSONP的原理:动态创建script标签;
- JSONP发送的不是Ajax请求
- 不支持 Post 请求;
-
CORS中文意思是
跨域资源共享
,需要服务器端进行
CORS
配置;
- CORS 发送的是真正的Ajax请求
- CORS 支持Ajax的跨域
- 如果要启用 CORS 跨域资源共享,关键在于 服务器端,只要 服务器支持CORS跨域资源共享,则 浏览器肯定能够正常访问 这种 CORS 接口;而且,客户端在 发送 Ajax的时候,就像发送普通AJax一样,没有任何代码上的变化;
- 对于Node来说,如果想要开启 CORS 跨域通信,只需要安装 cors 的模块即可;
01 什么是跨域
JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。那什么是跨域呢,简单地理解就是因为JavaScript同源策略的限制,a.com域名下的js无法操作b.com或是c.a.com域名下的对象。 当协议、子域名、主域名、端口号中任意一个不相同时,都算作不同域。不同域之间相互请求资源,就算作“跨域”。
说明 |
第一:如果是协议和端口造成的跨域问题“前端”是无能为力的 |
第二:在跨域问题上,域仅仅是通过“URL的首部”来识别而不会根据域名对应的IP地址是否相同来判断。“URL的首部”可以理解为“协议, 域名和端口必须匹配” |
所有跨域都必须经信息提供方允许, 如果未经允许即可获取, 那是浏览器同源策略出现漏洞
2.0 jsonp的实现原理
开发中常用jQuery的jsonp方式来解决跨域问题步骤1: 发送请求的时候设置dataType类型
$.ajax({
type: "get",
url: "http://day8.com/getnav.php",
dataType: "jsonp",
success: function(res) {
let html = templ
标签:jsonp,跨域,cors,Ajax,域名,CORS,com
From: https://blog.csdn.net/ranweidaoke/article/details/137567024