gpt4 book ai didi

javascript - 在同一端口上运行单独的 ASP.NET 项目

转载 作者:行者123 更新时间:2023-11-30 00:34:29 24 4
gpt4 key购买 nike

我有一个 ASP.NET MVC 项目,其中包含大部分 Web 应用程序以及客户端代码使用的 Web API。 API 组件开始蔓延,我想将 API 和 MVC 应用程序分成两个项目。 (MyAppMVC 和 MyAppAPI)。但是,我不确定当 MVC 应用程序不属于一个项目时如何让它们与 API 很好地配合使用。

现在我有一个 API Controller MyAPIController,它响应从客户端 JavaScript 发送到 /api/MyAPI 的 POST 和 GET 请求。当 JS 和 API 都在同一个项目下时,我从 Visual Studio 运行解决方案并毫无问题地访问 API。

但是,当他们在不同的项目中运行时,这就不再合作了。为避免违反跨域安全,JS 必须在同一域/端口内访问 API。然而,Visual Studio 在不同的端口上运行我的 API 和 MVC 应用程序,并且尝试从 MVC 文件中的 Javascript 文件访问 API 会导致同源错误。

有没有办法让这两个不同但互补的项目运行在同一个域/端口上?对于组织和模块化,我真的很希望能够将我的 Web 应用程序分成多个项目,而不是将它们集中到一个庞大的项目中。

最佳答案

我可以这样建议

  1. 在 IIS 中为 api 创建应用程序
  2. 在 IIS 中为 MVC 应用程序创建应用程序
  3. 在 API 中启用跨域请求
    <system.webServer>
    <httpProtocol>
    <customHeaders>
    <add name="access-control-allow-headers" value="content-type" />
    <add name="Access-Control-Allow-Origin" value="*" />
    </customHeaders>
    </httpProtocol>
    <system.webServer>

    1. 在两个项目中都使用自定义网络服务器进行调试VS 2012 是:右键单击 Web 项目 -> Web -> 选择“使用自定义 Web 服务器”并提供项目的 URL,它将类似于 localhost/api、localhost/mvc_client

从那一刻起,您的项目将拥有

  1. Debug模式下的相同地址,或者当您在没有调试的情况下浏览到项目时。
  2. Api 项目将允许跨域请求。
  3. 客户端将能够向 API 发送请求,因为它允许跨域请求。
  4. 并且您将能够调试项目。

如果要执行此操作,请在运行调试之前验证您是否可以浏览到项目。您可能会遇到“访问路径被拒绝”等问题。

关于javascript - 在同一端口上运行单独的 ASP.NET 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27784176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com