这个接口支持jsonp,自己注册个函数,传入callback参数为函数名称就可以获取到数据了
<script>
function mycallabck(data) {
alert(data.success)
alert(data.lgToken)
alert(JSON.stringify(data,null,4))
}
</script>
<script src="https://qrlogin.taobao.com/qrcodelogin/generateQRCode4Login.do?adUrl=&adImage=&adText=&viewFd4PC=&viewFd4Mobile=&from=tbTop&_ksTS=1513304817653_263&callback=mycallabck"></script>
现在也知道了怎样来解决跨域问题,余下的就是实现的细节了。实现的过程中错误还是避免不了的。由于不了解json和jsonp两种格式的区别,也犯了错误,google了好久才解决。
首先来看看在页面中如何使用jQuery的ajax解决跨域问题的简单版:
$(document).ready(function(){
var url='http://localhost:8080/WorkGroupManagment/open/getGroupById"
+"?id=1&callback=?';
$.ajax({
url:url,
dataType:'jsonp',
processData: false,
type:'get',
success:function(data){
alert(data.name);
},
error:function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}});
json格式:
{
"message":"获取成功",
"state":"1",
"result":{"name":"工作组1","id":1,"description":"11"}
}
dataType:'jsonp' , 不要使用json 可解决 或者 使用 httpclient 解决跨域
前端自定义一个函数传参数到后台,后台获取到,利用httpClient向你想跨域的网址发送请求,将获取到的请求再传回前端
dataType:'jsonp',就行了吧
<script type="text/javascript" src="https://cdn.staticfile.org/jquery/1.11.2/jquery.min.js"></script>
<div onclick="test();">测试</div>
<script>
function test(){
$.ajax({
type:'get',
url:'https://qrlogin.taobao.com/qrcodelogin/generateQRCode4Login.do?adUrl=&adImage=&adText=&viewFd4PC=&viewFd4Mobile=&from=tbTop&_ksTS=1513304817653_263',
dataType:'jsonp',
data:'',
success:function(data){
console.log(data);
}
})
}
</script>
dataType:'jsonp' 就好,jquery已经封装了jsonp的。
可以用jsonp进行获取相关数据,http://www.runoob.com/json/json-jsonp.html
好像jsonp接受的返回信息必需是jsonp的形式,否则会报错,建议使用java后台做(使用httpClient)
你的服务支持跨域就行了, AJAX 什么也不用改