使用jsonp获取xml跨域

lmk*_*mkk 9 xml xss jsonp cross-domain

我试图从另一台服务器读取xml到一个网页,我认为我的问题是同源策略,因此是一个跨域问题.

我有一点谷歌搜索,似乎jsonp是前进的方式.根据我在stackoverflow和其他网站上找到的一些例子,这就是我所拥有的,它不会用xml"命中"服务器.我可以在浏览器中查看xml.

$(document).ready(function(){    
   $.ajax({
        type: 'GET',
        dataType: 'jsonp',                
        url: 'http://192.168.0.106:8111/getconfiguration?',
        success: function (xml) 
        { //do stuff with received xml 
        }});    
Run Code Online (Sandbox Code Playgroud)

有什么建议?请记住,我是关于JS/JQuery的新手; o)

Jam*_*ong 1

如果您有权访问在远程服务器上生成 XML 的代码,则可以将整个内容包装在 jsonp 中。

<script>JSONP 是一种通过使用标签获取数据而不是尝试远程提取信息来绕过同源策略的方法。

在你的getconfiguation脚本中,你会有类似的东西

callback("SERVER GENERATED XML/JSON DATA GOES HERE");
Run Code Online (Sandbox Code Playgroud)

其中回调由远程调用指定

例如,如果您的远程脚本是 php,您将使其看起来像这样:

<?php
// getconfiguration.php
echo "$_GET['callback']($configuration_data);"
?>
Run Code Online (Sandbox Code Playgroud)

然后运行您在问题中提供的 AJAX。它实际上所做的是将脚本标记动态插入到您的页面中,如下所示:

<script src="http://192.168.0.106:8111/getconfiguation.php?callback=???"></script>
Run Code Online (Sandbox Code Playgroud)

jquery 填写 ??? 为您提供一些为您的成功回调生成的独特包装器