将数组中的jQuery.get结果数组转换为控制台中的字符串

时间:2015-08-17 17:46:51

标签: jquery arrays google-chrome-extension console

我在控制台中遇到了一些麻烦。我使用以下代码获取了一系列网址,并从这些网址获取源代码。

var URL = ["http://www.website.com", "http://www.anotherwebsite.com"];
var str = [];

$.each(URL, function(index, fetch) {
   $.get(fetch, function(sourcecode) {
     str.push(sourcecode); 
   })
 });

console.log(str);

这将在控制台中返回以下数组:

enter image description here

但是,我需要将该数组转换为所有源代码的单个字符串。我尝试使用 str.join ,但这不起作用。我需要控制台看起来像这样:

enter image description here

也许我只是错过了一段简单的代码,但我无法让它工作。

注意:这是在Google Chrome扩展程序中,因此跨域请求不是问题。

1 个答案:

答案 0 :(得分:1)

$.get不是你想要的。 “由于浏览器安全限制,大多数”Ajax“请求都受到相同的原始策略的约束;请求无法从不同的域,子域,端口或协议中成功检索数据。”

您想改用$.ajax

这会让你接近:

var URL = ["http://www.google.com", "http://www.jquery.com"];
var str = "";

$.each(URL, function(index, fetch) {
    $.ajax({
      url: fetch,
      dataType: "jsonp",
      success: function (sourcecode) {
         str += sourcecode;
      }
    });
 });

console.log(str);

http://jsfiddle.net/0zueyx97/

但你仍然会遇到一些错误:

  

SyntaxError:期望表达式,得到'<'
  SyntaxError:期望表达式,得到'<'

这是由于跨域问题See Here for solutions