ajax跨域问题

ajax跨域问题

什么是跨域问题?
跨域问题来源于JavaScript的"同源策略",即只有 协议+主机名+端口号 (如存在)相同,则允许相互访问。也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。跨域问题是针对js和ajax的,html本身没有跨域问题。

跨域问题怎么解决?

1.修改ajax请求头该协议(不安全)
2.委托php去访问
3. jsonp 只支持get请求不支持post请求

jsonp 解决方法 :(注意 要在集成环境的前提下运行)

    <button id='but1'>点击</button>
	<script>
        var but1 = document.getElementById('but1')
        but1.onclick= aa;
        function aa(){
            var xhr = null;
            try{
                xhr = new XMLHttpRequest();
            }catch(error){
                xhr = new ActiveXObject('Microsoft.XMLHTTP');
            }
            
			xhr.onreadystatechange=function(){
                if(xhr.readyState == 4){
                    if(xhr.status == 200){
                        console.log(xhr.response);
                    }
                }
            }

            xhr.open('get','bb.txt',true);
            // 同源 
            // 1.同协议  http://localhost/31/1.txt    http://localhost/31/2.html
            // 2.同域名/ip
            // 3.端口 
            xhr.send();
        } 
    </script>
匿名

发表评论

匿名网友