文档介绍:JS跨域请求解决方案
 
   
 
 
 
 
 
 
 
     
 
 
 
 
 
什么是跨域
跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。
广义的跨域:
data: {}
});
3.):
this.$(':8080/login', {
params: {},
jsonp: 'onBack'
}).then((res) => {
(res);
})
后端实现
:
var querystring = require('querystring');
var http = require('http');
var server = ();
('request', function(req, res) {
var params = (('?')[1]);
var fn = ;
// jsonp返回设置
(200, { 'Content-Type': 'text/javascript' });
(fn + '(' + (params) + ')');
();
});
('8080');
('Server is running at port 8080...');
(2) 子域不同跨域
+ iframe跨域
此方案仅限主域相同,子域不同的跨域应用场景。
实现原理:,就实现了同域。
1.)父窗口:())
<iframe id="iframe" src=""></iframe>
<script>
= '';
var user = 'admin';
</script>
2.)子窗口:())
<script>
= '';
// 获取父窗口中变量
alert('get js data from parent ---> ' + );
</script>
(3) + iframe跨域
实现原理: a欲与b跨域相互通信,通过中间页c来实现。 三个页面,,相同域之间直接js访问来通信。
具体实现:A域: -> B域: -> A域:,a与b不同域只能通过hash值单向通信,b与c也不同域也只能单向通信,但c与a同域,。
1.):())
<iframe id="iframe" src="" style="display:none;"></iframe>
<script>
var iframe = ('iframe');
//
setTimeout(function() {
= + '#user=admin';
}, 1000);
//
function onCallback(res) {
alert('data from ---> ' + res);
}
</script>
2.):())
<iframe id="iframe" src="