【问题标题】:How to send HTTP requests without opening up windows in Javascript?如何在不打开 Javascript 窗口的情况下发送 HTTP 请求?
【发布时间】:2011-05-21 08:02:44
【问题描述】:

现在我正在尝试使用window.open 打开一系列网址

for(i=0;i<10;i++)
{
    window.open("myapp://arg1/arg2/arg3/number_"+i);
}

除了弹出十个窗口外它工作正常。我想知道是否有任何方法可以在未显示的窗口上完成这项工作?帮助将不胜感激!

【问题讨论】:

  • 什么意思,“不弹出窗口?”
  • 你需要显示内容吗,如果你只使用HTTP get,为什么不进行AJAX调用,或者jquery get ie :: ` $.get('ajax/test.html', function(data) { $('.result').html(data); alert('加载已执行'); });`
  • @Matt Ball,我的意思是不打开新的网络浏览器标签。
  • 但是,您如何处理响应?如果您只想发送请求而不关心响应,请参阅我的回答。不过,您可能应该描述您真正想要完成的任务,因为您可能会想出解决错误问题的方法。
  • @Jason Jong,Josh Davis,我只需要一个请求就可以将一些参数传递给我的应用程序。

标签: javascript xmlhttprequest xdr


【解决方案1】:

如果您只想发送这些请求并且您不关心他们的响应,您可以创建一个图像:

for(i=0;i<10;i++)
{
    new Image().src = "myapp://arg1/arg2/arg3/number_"+i;
}

AFAIR,我尝试过的所有浏览器(没有测试 IE)都下载了资源,并且不需要我实际显示图像或将其附加到 DOM 或任何东西。这对于记录和预取内容很有用,但除此之外就没什么用了。

【讨论】:

  • 这种方式应该可行。谢谢。
【解决方案2】:

没有。一点也不。您正在循环调用window.open() 10 次。

You may want a JavaScript modal window.

【讨论】:

    【解决方案3】:

    有没有办法在不显示新窗口的情况下做到这一点?

    当然:

    for(i=0;i<10;i++)
    {
        // window.open("myapp://arg1/arg2/arg3/number_"+i);
    }
    

    说真的,您需要解释您期望发生什么 - window.open 的目的是打开新的(弹出)窗口,如果这不是您想要的,那么您需要另一个功能。

    更新:阅读您的评论后,您似乎希望向该页面发送 HTTP 请求(而不是在新窗口中打开该页面)。执行此操作的正常方法是使用XMLHttpRequest 对象发送请求。

    如果您使用的是 JavaScript 框架/库(例如 jQuery),您可能会发现这个对象被包装在更易于使用的函数中。

    【讨论】:

      猜你喜欢
      • 2020-03-02
      • 1970-01-01
      • 2018-07-04
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 2020-10-27
      相关资源
      最近更新 更多