我在控制台中遇到了一些麻烦。我使用以下代码获取了一系列网址,并从这些网址获取源代码。
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);
这将在控制台中返回以下数组:
但是,我需要将该数组转换为所有源代码的单个字符串。我尝试使用 str.join ,但这不起作用。我需要控制台看起来像这样:
也许我只是错过了一段简单的代码,但我无法让它工作。
注意:这是在Google Chrome扩展程序中,因此跨域请求不是问题。
答案 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);
但你仍然会遇到一些错误:
SyntaxError:期望表达式,得到'<'
SyntaxError:期望表达式,得到'<'
这是由于跨域问题See Here for solutions