我现在使用的是MUI的2.9版本,我们使用MUI很多时候都是请求接口跨域的,也许官方考虑了打包成APP可以跨域,但是忽略了我们很多是做WEB页面出身的,喜欢MUI的精简和快速,所以我做webAPP时经常第一时间想到MUI,在处理跨域问题上,我以前都是使用jquery的JSONP来解决跨域,现在使用mui.ajax()方法,官方文档里没给出是否可以使用jsonp,自己尝试试了下,向服务端post方式来传用户名和密码,依然显示是不让跨域,百度了N多,在本网站也看了N多,也是找不到答案,官方说的费了老大劲以毫秒级别来提升MUI运行速度,强烈不建议引入jquery,但是跨域这个常见的问题不能解决,实在没办法ajax请求数据,实在无奈,只得引入jquery来解决跨域问题,希望官方下一个mui版本能扩大Ajax能像jquery的ajax那么强大,而且现在WebAPP那么流行,实在应该出一款纯web的MUI版本,不知道我有生之年能不能看到呢。。。。。。。
- 发布:2016-08-12 17:11
- 更新:2016-09-06 13:16
- 阅读:5895
最佳回复
赵梦欢 - 专注前端,乐于分享!
普通浏览器跨域需要服务器端支持,mui中jsonp使用方法如下:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<link href="css/mui.min.css" rel="stylesheet" />
</head>
<body>
<button id="btn" type="button" class="mui-btn mui-btn-blue mui-btn-block">按钮</button>
<script src="js/mui.min.js"></script>
<script src="js/mui.jsonp.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
mui.init()
// http://fanyi.youdao.com/openapi.do?keyfrom=xqnblog&key=1828999753&type=data&doctype=json&version=1.1&q=good
var url = 'http://fanyi.youdao.com/openapi.do?keyfrom=xqnblog&key=1828999753&callback=?'
document.querySelector('#btn').addEventListener('click',function () {
mui.getJSON(url,{
only:"translate",
type:"data",
doctype:"jsonp",
version:"1.1",
q: 'good'
},function(rs){
alert("res:"+JSON.stringify(rs));
});
})
</script>
</body>
</html>
请求页写<meta http-equiv="Access-Control-Allow-Origin" content="">
<meta http-equiv="content-security-policy">
后端设置header('Access-Control-Allow-Origin:*');