【问题标题】:Client's computer Not Connecting to Server客户的电脑连接不上服务器
【发布时间】:2019-02-28 10:50:59
【问题描述】:

我正在为一家公司做一个项目,当我使用服务器计算机测试它时一切正常,但是当我尝试使用员工计算机登录时,它没有连接。

这是从 chrome 开发人员工具获得的信息::: 从源 'http://hrm' 访问 XMLHttpRequest 在 'http://hrm' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:否请求的资源上存在“Access-Control-Allow-Origin”标头。

OPTIONS http://localhost/smarthrapi/api/auth 500(内部服务器错误)

services.AddCors(o => o.AddPolicy("SmartHRCorsPolicy", builder =>
        {
            builder.AllowAnyOrigin()
                   .AllowAnyMethod()
                   .AllowAnyHeader();
        }));

Cors 已经启用,这是这里的用法

[EnableCors("SmartHRCorsPolicy")]
public class AuthController : Controller
{ mycode here
  1. 如果我在服务器上使用http://localhost/hrmanager/HR/login 登录,它可以正常工作,但是当我在员工计算机上尝试http://servername/hrmanager/HR/login 时,它无法正常工作。好像它没有看到我的代码或无法访问数据库。
  2. 所有视图都运行良好,就像我尝试 http://servername/hrmanager/HR/anotherpage 时页面显示但没有任何运行一样。

是服务器的一些限制还是我的代码的问题,我真的不知道请帮助我。我用 MVC 编写了代码,我有使用 ajax 调用的 API,并且正在使用 sqlserver。请应用程序需要明天上线,这意味着我需要今天修复它。谢谢

【问题讨论】:

标签: javascript api model-view-controller server


【解决方案1】:

查看您收到的错误消息,这绝对是 CORS 问题。为了进一步调查,您确定 API 在每个客户端的 http://localhost/ 上托管或可用,如错误消息中所述?如果是,那么设置 CORS 可能会有所帮助。

如果不是,它们是否托管在 http://servername/ 上?然后请检查 API URL,在这种情况下,它们应该指向 http://servername/ 而不是 localhost。可能需要查看的区域是 View (.cshtml/.vbhtml) 文件和 Javascript 代码(如果有)。

【讨论】:

  • 我不明白你的意思是什么如果不是,他们是否托管在servername 上?然后请检查 API URL,在这种情况下,它们应该指向 servername,而不是指向 localhost。可能需要查看的区域是 View (.cshtml/.vbhtml) 文件和 Javascript 代码(如果有)。
  • 所有 API url 都指向 servername 而不是 localhost
  • 对不起,这句话让你一时糊涂了。您可以尝试使用 Postman 或仅使用员工机器上的浏览器访问 API 吗?该错误表明应用程序正在尝试访问localhost 而不是servername 的API。您可以在 Chrome 或 Firefox 的开发者工具的网络选项卡中检查
  • 我刚刚把路由改成服务器名,现在可以从员工机器访问api了
  • 我也应该为视图做同样的事情吗?
猜你喜欢
  • 2019-12-19
  • 1970-01-01
  • 2013-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-01
  • 1970-01-01
相关资源
最近更新 更多