小编Joã*_*mes的帖子

JavaScript中的setInterval()行为,0毫秒

在我的应用程序中,我发现了一些使用setInterval0毫秒的JavaScript代码,如下所示:

self.setInterval("myFunction()",0);
Run Code Online (Sandbox Code Playgroud)

显然,这对我来说似乎不是一个好主意.谁能告诉我setInterval这里的行为会是什么?("myFunction"对服务器进行AJAX调用)

我问这个是因为我的申请表现不正常.90%的情况下,应用程序运行正常,并且只对服务器进行一次调用.但有时会对服务器进行多次调用(到目前为止,最多只有48次调用),我几乎可以肯定这是这行代码的错误.

javascript setinterval

20
推荐指数
1
解决办法
2万
查看次数

在IIS上使用URL重写来设置响应的Location标头

我在Windows 2008R2 IIS 7环境中部署了.Net应用程序(使用Outsystems平台构建)。该应用程序已经可以正常使用了。它通过HTTPS在端口443上处理请求,我可以毫无问题地访问它。

现在,需要使一些用户能够通过NAT访问它,该NAT配置为在端口8200上处理请求。将请求毫无问题地转发到服务器,除非响应是重定向(HTTP 302)。在这些情况下,将使用为应用程序实际提供服务的端口(即端口443)设置响应的位置标头。当客户端的浏览器尝试访问在位置标头中设置的此URL时,它将失败,因为NAT仅在端口8200中处理请求。

总共:

  • 客户端浏览器访问https://myserver:8200/myapp;
  • NAT转换URL并转发到https://myserver:443/myapp;
  • 应用程序回复302重定向到https://myserver:443/redirect
  • 客户端浏览器访问https://myserver:443/redirect;
  • NAT会阻止此访问,因为它期望使用端口8200。

这是我试图做的;我在IIS中安装了URL重写模块并创建了以下规则:

  • 将请求的主机标头(在这种情况下为https://myserver:8200)存储到服务器变量ORIGINAL_HOST 的入站规则。
  • 出站规则将响应的位置标头(https://myserver:443/redirect)中发送的URL的主机部分替换为存储在我的服务器变量ORIGINAL_HOST中的值。该规则仅在重定向的情况下适用。

我现在面临的问题是,一旦启用此规则,所有AJAX请求都将停止工作,即使该规则不适用于它们,甚至在没有通过NAT访问应用程序时也是如此。发生这种情况时,通过开发人员工具中的IE的“网络”选项卡,我可以看到请求标头和正文正常,响应标头正常,但是响应正文为空,不应如此。另外,如果我尝试使用断点在服务器上调试AJAX请求,则它不会在断点处停止。

因此,我的问题是:使用URL重写是解决NAT / URL问题的最佳方法吗?如果是这样,我该如何解决AJAX的情况?如果没有,那么我该如何解决重定向问题?

*编辑:这是我的规则配置:

先感谢您,

若昂·戈麦斯(JoãoGomes)

.net iis-7 nat outsystems url-rewrite-module

5
推荐指数
1
解决办法
3634
查看次数