我正在寻找一个简单的javascript系统,用于对网址进行跨域点火和忘记调用。由于这个网址除了状态之外没有给我任何其他信息:当一切都很好时,我会尝试提供最佳解决方案。
我正在调用的URL不受我的控制,因此实现JSONP解决方案或在标题中设置“Access-Control-Allow-Origin”不是一种选择。
另外,我被要求在不依赖jQuery的情况下编写它。
我正在调查的一个这样的解决方案涉及为url创建一个带有src属性的新脚本elelement。但是,由于会有很多这样的电话,我还想在每次通话后进行清理。
这是我到目前为止的想法:
var fireAndForgetGETRequest = function(url) {
var head = document.getElementsByTagName("head")[0];
var scriptTag = document.createElement("script");
scriptTag.type = "text/javascript";
head.appendChild(scriptTag);
scriptTag.src = url;
setTimeout(function() {
head.removeChild(scriptTag);
scriptTag = null;
}, 5000);
};
这会在任意时间后(在这种情况下为5秒)清理脚本标记。
这是一个合理的解决方案吗?我是否需要在清理之前等待或立即提出要求?
您的任何帮助非常感谢JavaScript专家:)
答案 0 :(得分:8)
如果您不关心响应,为什么要打开自己的XSS攻击?通过图像请求发送GET请求。
function sendData(url) {
function remove() {
img = null;
}
var img = new Image();
img.onerror = remove;
img.onload = remove;
img.src = url;
}