是否有任何JS函数将URL的内容从另一个域获取到变量?具体来说,我需要设置以下站点的内容:https://www.alza.cz/apps/externalbanner.ashx?type=1785作为JS变量的字符串。我尝试了几个AJAX代码,.load jQuery功能,但没有任何效果。我开始认为使用JS不可能做到这一点,请问您能帮我吗?充其量,可以将字符串直接分成3个变量,其中分隔符是一个空格,但这不是我自己可以做的。
最好, 彼得
答案 0 :(得分:0)
从JS发送ajax请求的最常见方法是:
获取api (可能不是所有浏览器都支持的新功能)
fetch('url')
.then(response => response.text()) // response is text format
.then(content => {
/* do something here*/
alert(content))
}
)
还有旧的XMLHttpRequest类
const xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
alert(this.responseText);
}
};
xhttp.open("GET", "url", true);
xhttp.send();
注意:
在主线程上发送AJAX请求是一个坏主意,它会冻结网站,因此您将在另一个线程上获取数据
远程服务器可能不允许您从其他页面获取其内容,在这种情况下,JavaScript控制台将显示错误,例如:
CORS策略已阻止从来源“ https://google.com/”访问“ http://localhost:3000”处的XMLHttpRequest:请求的资源上没有“ Access-Control-Allow-Origin”标头。
还有其他一些不太严格的限制,例如:从http到https不进行抓取,所有失败的请求都将记录到控制台
要将字符串分成多个部分,请使用
const splitedArray = 'a b c'.split(' ' /* seperate by space */)
splitedArray[0] == 'a'
splitedArray[1] == 'b'
splitedArray[2] == 'c'