从javascript中的url获取数据

从javascript中的url获取数据,javascript,Javascript,我正试图从用户给定的URL获取数据文件,但我不知道如何做。事实上,我可以成功地从我的服务器获取数据。这是我的密码: $("button#btn-demo").click(function() { $.get('/file', { 'filename' : 'vase.rti', }, function(json) { var data = window.atob(json); // load HSH raw file floatPixels = lo

我正试图从用户给定的URL获取数据文件,但我不知道如何做。事实上,我可以成功地从我的服务器获取数据。这是我的密码:

$("button#btn-demo").click(function() {
  $.get('/file', {
    'filename' : 'vase.rti',
  },
  function(json) {
    var data = window.atob(json);

    // load HSH raw file
    floatPixels = loadHSH(data);

    render();
  });
});
它可以从我的服务器获取二进制数据,解析文件并将其呈现为图像。但现在我希望它在没有任何服务器的情况下工作,这意味着用户可以提供URL,javascript可以获取文件并呈现它。我知道这是关于跨站点请求的。你能告诉我这件事以及如何实现它吗?
提前谢谢

假设您的URL是有效XML文档的地址,本例将获取它。如果URL所在的域与保存脚本的域不同,则需要使用服务器端脚本语言来获取资源(URL值的XML文档)并将其返回到域中。在PHP中,它将是

<?php echo file_get_contents( $_GET['u'] );

您需要使用chrome中的js调试器控制台来查看数据。此时,您可能希望在循环中提取数据并使用find()

我对jQuery不是很熟悉,但正如我所知,由于同源策略,浏览器不允许任何JavaScript代码向自己域以外的域发出AJAX请求。因此,为了检索一些数据(特别是JSON格式的数据),您可以向页面动态添加
元素,并将其
src
属性设置为数据提供者的地址。大概是这样的:

<script src='otherdomain.com/give_me_data.json'/>
当浏览器获取在
src
属性中指定的项时,尝试运行它(因为它知道它是一个脚本)。因此,如果服务器发送一个函数调用作为响应,那么在获取所有数据后将立即调用该函数


您可以通过以下方式实现服务器端:它接受回调函数的名称作为参数,加载请求的数据并生成适当的输出,该输出由函数调用组成,加载的数据作为json参数。

您的意思是我应该向服务器端添加一些代码吗?我想没有服务器。有可能吗?没有服务器?你在构建浏览器扩展吗?是的,我在构建一个小部件,现在我找到了方法,使用
JSONP
获取跨站点数据。在chrome浏览器扩展中,您可以将通配符站点添加到manifest.json文件中,这将允许您从扩展js脚本访问不同域上的文件。使用JSONP会打开用户的跨站点js攻击。这是危险的,只能与可信来源一起使用
<script src='otherdomain.com/give_me_data.json'/>
callbackFunction({data1: 'value1', data2: 'value2', ...});