美文网首页我爱编程
jsonp解决跨域问题

jsonp解决跨域问题

作者: 贝灬小晖 | 来源:发表于2018-08-09 13:14 被阅读14次

1.什么是跨域?
跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。

所谓同源是指,域名,协议,端口均相同,不明白没关系,举个栗子:

http://www.123.com/index.html 调用 http://www.123.com/server.php (非跨域)

http://www.123.com/index.html 调用 http://www.456.com/server.php (主域名不同:123/456,跨域)

http://abc.123.com/index.html 调用 http://def.123.com/server.php (子域名不同:abc/def,跨域)

http://www.123.com:8080/index.html 调用 http://www.123.com:8081/server.php (端口不同:8080/8081,跨域)

http://www.123.com/index.html 调用 https://www.123.com/server.php (协议不同:http/https,跨域)

请注意:localhost和127.0.0.1虽然都指向本机,但也属于跨域。

浏览器执行javascript脚本时,会检查这个脚本属于哪个页面,如果不是同源页面,就不会被执行。

2.如何解决跨域问题

1、通过后台解决跨域问题:js向服务器发送请求,然后让服务器去另一个域上获取数据后返回。该方式我是比较喜欢的,需要自己写http请求,去请求另一个域的服务器的数据,然后将得到的数据提交给前台。

2、在前端解决跨域问题:用JSONP。

JSONP
JSONP只支持GET请求,不支持POST请求

例子:
页面1.
app.use("/tJsonp", require("./routes/tJsonp"));
页面2.
var express = require('express');
var router = express.Router();
router.get('/', main);
function main(req, res) {
var sysType=req.query.sysType;
var token=req.session.investorToken || "";
if(sysType == 1){
token=req.session.merchantToken || "";
}else if(sysType==3){
token=req.session.channelToken || "";
}else if(sysType==4){
token=req.session.adminToken || "";
}
res.end("callback('"+token+"')");
}
module.exports = router;
使用:
在其他域名下
<script>
$.ajax({
url:"http://uplogin.upyyx.com/tJsonp?sysType=4",
dataType:"jsonp"
})
window.callback = function(o) {
console.info("###",o);
if(o){
window.localStorage.setItem("token",o);
angular.bootstrap(document, ["app"]);
}else {
location.href = "http://uplogin.upyyx.com";
}
}
</script>

相关文章

  • 解决ajax跨域问题

    Jsonp解决ajax跨域问题 CORS解决ajax跨域问题

  • ajax跨域请求

    ajax跨域请求(jsonp) 利用JSONP解决AJAX跨域问题的原理与jQuery解决方案JSONP jQue...

  • 跨域访问

    参考文献:jsonp解决跨域问题 . cors解决跨域问题 . (java+前端小白)第一次碰到跨域问题,小伙伴们...

  • 跨域

    ??JSONP只能解决GET请求跨域,不能解决POST请求跨域问题,XHR2可以解决GET,POST方式的请求跨域...

  • 跨域

    跨域 什么是跨域: 解决跨域 通过jsonp原理:在页面引入跨域js和css时,没有存在跨域问题.因此可以动态创建...

  • 使用JSONP解决ajax跨域

    在日常开发中,不免遇到跨域的问题。在这里我们介绍使用Jsonp来解决ajax跨域的问题 什么是跨域? 跨域,指的是...

  • Ajax跨域问题

    一、跨域问题 二、跨域的定义以及产生原因 三、解决思路 四、JSONP 五、跨域解决的方向 五、浏览器禁止检查

  • 跨域上传图片并预览

    跨域上传文件 之前解决跨域问题都是使用的JQuery的JSONP类型的Ajax请求,JSONP原理是让服务器把数据...

  • jsonp,ajax,json的问题

    JSONP JSONP是解决跨域问题的一种常见方式 跨域问题:因为浏览器有同源策略,所以当不同域间进行数据交互的时...

  • Spring Boot使用CORS解决跨域问题

    一、跨域问题描述 Web开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS等等。CORS 与 ...

网友评论

    本文标题:jsonp解决跨域问题

    本文链接:https://www.haomeiwen.com/subject/kxaksxtx.html