开发者社区> 问答> 正文

php+js+ajax 跨域读取远程动态xml文件

今天偶然遇到一个js+ajax读取xml文件的需求,在操作中,遇到了些问题,比如:没有权限等,发来和大家分享一下。

js+ajax读取本地的xml时,是不会报错的,但是在读取远程动态生成的xml时,就会没有权限的error,出现跨域禁止访问的问题。一般出现这个问题,都会使用服务器端代理的方式来解决。

下面是php下使用的代理的代码:

展开
收起
a123456678 2016-07-15 14:41:51 2559 0
1 条回答
写回答
取消 提交回答
  • get.php

    <?php 
        header("Content-Type:text/xml");
        $pararl = $_GET['geturl'];      
        if(!empty($pararl)) {
            echo file_get_contents($pararl);
        }
    ?>
    接下来是,query.html页面,处理js和ajax
    
    <html>
        <body>
    <script src="jquery.js"></script>
    <script>
    function query(geturl){
    $.ajax({   
        url:geturl,   
        type: 'GET',   
        dataType: 'xml',   
        timeout: 2000,   
        error: function(xml){   
            alert('Error loading XML document'+xml);   
        },   
        success: function(xml){   
            var code=[];
            var msg=[];
            $(xml).find("Result").each(function(i){   
                code[code.length]=$(this).children("Code").text();           
                msg[msg.length]=$(this).children("msg").text();          
            });
            //如果能找到code属性,并且第一个code的值为1,显示提示信息,否则,打印全部信息
             if(xmldata.code[0]=='1'){
                $("#data_div").html(msg);
            }else{
                $("#data_div").html(xml.responseText);
            }  
        }   
    });  
    }
    </script>
    <div>请输入url:<input type="text" value="http://baidu.com" size="30" id="geturl"><input type="button" name="btn" value="获取信息" onclick="query($('#geturl').val())"></div>
    <div id="data_div"></div>
    </body>
    </html>
    2019-07-17 19:56:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-直面PHP微服务架构挑战-高驰涛 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载