0

我正在寻找创建一个简单的 javascript 系统,用于对 url 进行跨域即发即忘调用。由于这个 url 除了 status:200 之外没有给我任何东西,当一切都很好时,我正在努力想出最好的解决方案。

我正在调用的 url 超出了我的控制范围,因此实施 JSONP 解决方案或在标头中设置“Access-Control-Allow-Origin”不是一种选择。

此外,我被要求在不依赖 jQuery 的情况下编写此代码。

我正在研究的一个这样的解决方案涉及创建一个新的脚本 elelement,其中 src 属性指向 url。但是,由于会有很多这样的电话,我也想在每次通话后进行清理。

到目前为止,这是我的想法:

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 专家的任何帮助将不胜感激:)

4

1 回答 1

8

如果你不关心响应,为什么要对 XSS 攻击敞开心扉呢?通过图像请求发送 GET 请求。

function sendData(url) {
    function remove() { 
        img = null; 
    }
    var img = new Image();
    img.onerror = remove;
    img.onload = remove;
    img.src = url;   
}
于 2013-01-17T14:13:38.660 回答