【问题标题】:Http get problems in ISS/angularISS/angular 中的 Http 获取问题
【发布时间】:2018-12-13 14:40:54
【问题描述】:

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

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

当我在 localhost 80 上运行我的应用程序时,它会填充页面不用担心,但是当我通过访问角度服务器但无法访问数据库服务器的外部计算机运行它时,我会遇到一些错误。

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

是否有不同的方式需要设置 angular 才能获取这样的数据,或者是否在 iis 服务器设置中。

【问题讨论】:

    标签: angular rest iis server


    【解决方案1】:

    有很多事情可能会导致这些错误出现。我在某些时候遇到过类似的问题,如果我是你,我会首先检查以下内容。

    1. CORS 不会在某些请求类型上触发。尝试在您的 HttpHeaders 中为您的获取请求将 ContentType 设置为“application/json”。
    2. 确保您在 IIS 中为您的站点的 web.config 进行了适当的配置。它需要 url 重写。我把你我的放在文章的最后以供参考。

    检查正在发生的事情并找出失败的好工具是:Fiddler

    另一个方便的 chrome 扩展来测试问题是否仅与 CORS 相关是Moesif chrome extension

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

    祝这个 Sam 好运,一开始可能会有点不知所措,但你会得到它的 ;)

    <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-08
      • 2016-07-28
      • 2016-12-25
      • 1970-01-01
      • 2020-11-11
      • 2017-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多