jsonp跨域请求

异步对象不能发送跨域请求,这个跨域指的是跨域名(Http请求报文中请求报文头的Host)

如https://www.baidu.com:8080和https://www.baidu.com:9090 即使域名相同,端口不同,也算跨域

jsonp的原理就是利用script标签可以跨域访问,然后会加载js在dom上执行,jQuery内部实现就是创建script标签

$.ajax({
                async: true,//默认值: true,为异步请求。如果需要发送同步请求,将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

                url: '...........',

                type: "GET",


                dataType: 'jsonp',//JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

                jsonp: 'callback',//即是发送请求的时候额外的带过去的一个参数的名字,服务器端根据此参数获取回调函数的名字 

                jsonpCallback:'getData',//回调函数名字 此时会多带一个callback=getData 过去
                data: {
                  ...............
                },
                success: function (_data) {
                  .........
                }

            });

         

          

        

原文地址:https://www.cnblogs.com/zhangyihui/p/4801956.html