AJAX解决跨域问题(jsonp和cors)

跨域是浏览器的安全策略,限制了不同源之间的交互。JSONP是一种非官方的解决跨域的方案,通过动态创建script标签实现GET请求的跨域。CORS是官方的跨域解决方案,通过设置特定的HTTP响应头,允许指定源或所有源进行跨域请求,支持GET和POST等更多请求类型。
摘要由CSDN通过智能技术生成

跨域

跨域是针对同源策略提出的,是浏览器的一种安全策略。同源策略是指协议、域名、端口号 必须完全相同,违背了同源策略就是跨域。

JSONP方法

什么是jsonp
  • JSON with Padding 带填充的JSON
  • jsonp是非官方的解决跨域方法,只支持get请求.
  • 网页中有一些标签本来就具有跨域能力,例如img /link /iframe /script,jsonp就是利用script标签的跨域能力来发送请求的
json是怎么工作的
  • 动态的创建一个script标签
var script = document.createElement("script");
  • 设置script的src,设置回调函数
script.src = "http://localhost:3000/testAJAX?callback=abc";
function abc(data) {
alert(data.name);
};
  • 将script添加到body中
document.body.appendChild(script);
  • 服务器中路由的处理
router.get("/testAJAX" , function (req , res) {
console.log("收到请求");
var callback = req.query.callback;
var obj = {name:"孙悟空", age:18}
res.send(callback+"("+JSON.stringify(obj)+")");
}); 

CORS方法

官方文档:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS
什么是CORS
  • CORS(Cross-Origin Resource Sharing),跨域资源共享。是官方的跨域解决方案
  • 不需要在客户端做任何特殊的操作,完全在服务器中进行处理,支持get 和 post 请求
  • 跨域资源共享标准新增了一组 HTTP 首部字段,允许服务器声明哪些源站通过浏览器有权限访问哪些资源
CORS是怎么工作的

CORS 是通过设置一个响应头来告诉浏览器,该请求允许跨域,浏览器收到该响应
以后就会对响应放行。

CORS的使用

主要是对服务器端的设置

router.get("/testAJAX" , function (req , res) {
//通过 res 来设置响应头,来允许跨域请求
//res.set("Access-Control-Allow-Origin","http://127.0.0.1:3000");
res.set("Access-Control-Allow-Origin","*");
res.send("testAJAX 返回的响应");
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值