跨域访问时web前端开发者经常遇到的问题,那么什么是跨域呢?
跨域的慨念:
只要协议,域名,端口任何一个不同,都被当作是不同的域。例如在A网站中,我们希望通过AJAX获得B网站中特定的内容,此时A网站和B位置不在同一个域,那么就出现了跨域访问问题。可以理解为两个域名之间不能跨国域名来发送请求或是请求数据,否则就是不安全的。
解决跨域访问的方法:
1.代理;
2.在服务器端设置相应的响应头;
3.JSONP。
接下来,我详细的介绍一下jQuery中的JSONP是如何解决跨域访问的。
JSONP(Json with Padding)是资料格式Json的一种“使用模式”,可以让网页从别的网域获得资料。
JSONP也叫填充式JSON,是应用JSON的一种新方法,只不过是被包含在函数中调用的JSON。
JSONP的组成部分:
回调函数:当响应到来时应在网页调用的函数;
数据:传入回调函数中的JSON数据。
JSONP跨域访问原理:
利用
原始的JS跨域访问:
后台有一个处理路径“/test”的函数:
//路径处理
app.get("/test",user.test);
//处理函数
exports.test=function(req,res){
res.end("alert('JS跨域访问')");
};