js的跨域问题

 跨域问题是由于javascript语言安全限制中的同源策略造成的.

简单来说,同源策略是指一段脚本只能读取来自同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合



JS原生解决跨域问题:

<script type="text/javascript">

        var result = null;
        window.onload = function () {
            var script = document.createElement("script");
            script.type = "text/javascript";
            script.src = "ip地址/api";
            var head = document.getElementsByTagName("head")[0];
            head.insertBefore(script, head.firstChild);

        };

        function callback(data) {
            result = data;
        }

        function click() {
            alert(result.name);
        }
    </script>

2、jqurey解决跨域问题:

$.ajax({ 
                async: false, //是否异步
                url: "ip地址/api", //请求地址
                type: "GET", //请求类型
                dataType: 'jsonp', //数据类型
                //jsonp的值自定义,如果使用jsoncallback,那么服务器端,要返回一个jsoncallback的值对应的对象. 
                jsonp: 'jsoncallback', 
                //要传递的参数,没有传参时,也一定要写上 
                  data: null, //请求的时间
                timeout: 5000, 
                //返回Json类型 
                  contentType: "application/json;utf-8", //请求头设置
                //服务器段返回的对象包含name,data属性. 
                success: function (result) { //成功时回调的方法
                    alert(result.date); 
                }, 
                error: function (jqXHR, textStatus, errorThrown) { //错误时返回的提示
                    alert(textStatus); 
                } 
            });


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值