ajax跨域请求数据的问题 5C

如何用ajax跨域获取
https://qrlogin.taobao.com/qrcodelogin/generateQRCode4Login.do?adUrl=&adImage=&adText=&viewFd4PC=&viewFd4Mobile=&from=tbTop&_ksTS=1513304817653_263
返回的值?

10个回答

这个接口支持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>

showbo
支付宝加好友偷能量挖 回复SJ_DDUp: 自己看下淘宝的api说明怎么用的这个接口
接近 2 年之前 回复
showbo
支付宝加好友偷能量挖 回复SJ_DDUp: 这个就没办法了。。。http协议附带来源,淘宝不会返回数据。响应是空的。
接近 2 年之前 回复
u010702433
SJ_DDUp 回复showbo: 这里是取二维码,要让接口知道这个二维码获取的地址和手机扫描地址是一个地方的。
接近 2 年之前 回复
u010702433
SJ_DDUp 回复showbo: 服务端是可以,但是这样客户扫描,淘宝发现我们服务器取的二维码和登录地址不一样,客户那就会异地登记警告。然后把客户的账号封了。
接近 2 年之前 回复
showbo
支付宝加好友偷能量挖 回复SJ_DDUp: 应该是判断来源了,有来源的直接不返回数据了。。。⊙﹏⊙b汗。在服务器端做了,服务器端可以去掉来源
接近 2 年之前 回复
u010702433
SJ_DDUp 不行啊,大哥,这种新建一个文本文档.html直接浏览可以,本地路径。挂iis上带上http就不行了。
接近 2 年之前 回复

现在也知道了怎样来解决跨域问题,余下的就是实现的细节了。实现的过程中错误还是避免不了的。由于不了解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>
weixin_41416418
weixin_41416418 dataType:'jsonp'
接近 2 年之前 回复
qq_35235940
听楼一夜雨 如果要请求的服务器不是你控制的,那基本不可能了
接近 2 年之前 回复
u010702433
SJ_DDUp 对方不是我们写的。^_^
接近 2 年之前 回复
u010702433
SJ_DDUp 回复听楼一夜雨: 对方是我们写的。^_^
接近 2 年之前 回复
qq_35235940
听楼一夜雨 那应该需要对方允许你的域名访问他的接口,对方接口代码要加一个 header('Access-Control-Allow-Origin:你的域名');
接近 2 年之前 回复
u010702433
SJ_DDUp 这种在本地直接浏览可以,但是挂iis上不行。
接近 2 年之前 回复

dataType:'jsonp' 就好,jquery已经封装了jsonp的。

可以用jsonp进行获取相关数据,http://www.runoob.com/json/json-jsonp.html

好像jsonp接受的返回信息必需是jsonp的形式,否则会报错,建议使用java后台做(使用httpClient)

你的服务支持跨域就行了, AJAX 什么也不用改

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!