HTTP在ISS / Angular中遇到问题

时间:2018-12-13 14:40:54

标签: angular rest iis server

我在IIS服务器上部署了一个有角度的生产版本,可以通过localhost:80 / myApp以及任何人从外部访问它。

当数据库托管在另一台服务器上并且我使用软件(Rocket u2)访问该服务器时,它使用url localhost:8080 / datalist发出get请求以填充页面,当我进入该服务器时可以看到数据localhost:8080 / datalist,所以我知道我已连接到该服务器。

当我在本地主机80上运行我的应用程序时,该页面不会出现任何问题,但是当我通过可访问角度服务器但无法访问数据库服务器的外部计算机运行该页面时,我会遇到一些错误。

首先,我尝试在Web.config文件中启用CORS错误,但仍然收到黄色通知。 而且我还得到一个错误名称,该名称未为localhost:8080解析

是否需要以其他方式设置angular才能获取这样的数据,或者是在iis服务器设置中?

1 个答案:

答案 0 :(得分:0)

可能发生的很多事情都会使这些错误出现。有时我遇到过类似的问题,如果我是你,这是我首先要检查的事情。

  1. CORS不会在某些请求类型上触发。尝试为您的get请求在HttpHeaders中将ContentType设置为“ application / json”。
  2. 请确保您为IIS中站点的web.config配置了适当的配置。它需要URL重写。我在帖子末尾附上我的名字。

检查情况并确定故障原因的好工具是:Fiddler

另一个用于测试问题是否仅与CORS相关的chrome扩展程序是Moesif chrome extension

如果您不了解该技术是什么,那么如果您稍微了解一下CORS,也可能会帮助您弄清楚问题出在哪里。这是一个很好的参考:Mozilla Developper Cross-Origin Resource Sharing (CORS)

这个山姆祝你好运,一开始可能有点不知所措,但是你会费劲的;)

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Angular Routes" stopProcessing="true">
          <match url=".*" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="/" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>