我正在为一家公司做一个项目,当我使用服务器计算机测试它时,一切正常,但是当我尝试使用员工计算机登录时,它无法连接。
Here's the am getting from chrome developer tools::: Access to XMLHttpRequest at 'http://localhost/smarthrapi/api/auth' from origin 'http://hrm' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
OPTIONS http://localhost/smarthrapi/api/auth 500 (Internal Server Error)
services.AddCors(o => o.AddPolicy("SmartHRCorsPolicy", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
}));
Cors 已经启用,这是这里的用法
[EnableCors("SmartHRCorsPolicy")]
public class AuthController : Controller
{ mycode here
- 如果我使用 http://localhost/hrmanager/HR/login登录服务器,它工作正常,但是当我尝试http://servername/hrmanager/HR/login时在员工计算机上,它不起作用。就好像它没有看到我的代码或无法访问数据库。
- 所有 View 都工作正常,就像我尝试 http://servername/hrmanager/HR/anotherpage 时一样页面正在显示,但没有任何效果。
是服务器上的一些限制还是我的代码的问题,我真的不知道请帮助我。我使用 MVC 编写代码,使用 ajax 调用 API,并使用 sqlserver。请该应用程序明天需要上线,这意味着我今天需要修复它。谢谢
最佳答案
查看您收到的错误消息,这肯定是 CORS 问题。为了进一步调查它,您确定该 API 在每个客户端的 http://localhost/ 上托管或可用吗?正如错误消息中提到的?如果是,那么设置 CORS 可能会有所帮助。
如果不是,它们是否托管在http://servername/上?然后请检查API URL,它们应该指向http://servername/在这种情况下,不要指向 localhost。可能需要查看的区域是查看 (.cshtml/.vbhtml) 文件和 Javascript 代码(如果有)。
关于javascript - 客户端计算机未连接到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54923947/