是否可以更改此代码,因此如果http://www.myurl.com重定向到应该运行的js文件,它将以递归方式工作?
function include(scriptUrl)
{
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", scriptUrl);
xmlhttp.onreadystatechange = function()
{
if ((xmlhttp.status == 200) && (xmlhttp.readyState == 4))
{
eval(xmlhttp.responseText);
}
};
xmlhttp.send();
}
include("http://www.myurl.com");
答案 0 :(得分:2)
为什么不这样做:
$("head").append("<script src='http://myurl.com' type='text/javascript'></script>");
当然你可以在没有jquery的情况下完成它,但这就是它的主旨。如果您只是从一个只需要GET参数的URL(如果有的话)中提取,那么只需添加一个包含它的新脚本元素就更容易(也更安全)。
这也将解决您的重定向问题,因为浏览器将遵循重定向。
答案 1 :(得分:1)
当网址将您重定向到其他位置时,它可能会为您提供301 status而不是200状态。在这种情况下,您的支票应该是:
if ((xmlhttp.status == 200 || xmlhttp.status == 301) && xmlhttp.readyState == 4)
或者您可以选择允许除错误状态以外的所有内容:
if (xmlhttp.status < 400 && xmlhttp.readyState == 4)