使用变量URL的jquery $ .ajax函数

var array = new Array(); $.get('comics.txt', function(data) { array = data.split(","); for(var i = 0; i < array.length; i++) { var $page = array[i]; $.ajax({ url: $page, success: function(data) { alert(data); } }); } }); 

comics.txt是一个包含一些URL的文件,以逗号分隔。

在上面的代码中,$ .ajax调用不起作用; $ page是正确的URL,但它在上下文中不起作用。 警报(数据)导致出现空白警报框。 我需要帮助找出一种方法来从数组中的每个页面获取数据。

提前谢谢。

$page是你网域的url?…如果没有,你就不能做ajax …

相同的域名政策


如果是这样,我如何通过外部URL的javascript获取数据?

你有从你的服务器得到它…

例如..

 var array = new Array(); $.get('comics.txt', function(data) { array = data.split(","); for(var i = 0; i < array.length; i++) { var $page = array[i]; $.ajax({ url: 'your/server/url.php?page=' + $page, success: function(data) { alert(data); } }); } }); 

your/server/url.php可以为你获取页面...

您无法从客户端的浏览器向其他域发出请求。 这是一个巨大的安全风险。 如果文本文件中的URL与运行javascript的域位于同一域,则此代码将起作用。

您可以通过动态地向DOM添加脚本元素来跨站点脚本,其中src属性指向您喜欢的任何位置; 只要src中引用的内容返回JavaScript(protip:在XSS结尾处执行预定义函数以实现类似AJAX的行为),它应该可以工作。

网站1:

  

站点2(xss.js):

 var mystring = "hello"; if (typeof(alerty) != "undefined") { alerty(mystring); } 

显然,URL不必是一个平面文件 - 它可能是由PHP根据URL中的GET请求构造的JavaScript。 此外,这假设您可以控制远程数据,您可能没有。