Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net/asp.net服务器中的跨域(CORS)错误_Asp.net_Angularjs_Cors_Preflight - Fatal编程技术网

asp.net/asp.net服务器中的跨域(CORS)错误

asp.net/asp.net服务器中的跨域(CORS)错误,asp.net,angularjs,cors,preflight,Asp.net,Angularjs,Cors,Preflight,我正在开发基于Angular 1/ASP.net技术堆栈的web应用程序。 由于某些原因,我无法使用生产服务器在本地环境上部署api服务器。我在本地env中使用nginx启动了UI端。 登录页面为: 当单击登录按钮时,它将从生产服务器调用API 但我得到了一个错误: 飞行前的响应具有无效的HTTP状态代码400 我在浏览器中打开了跨域选项,带有chrome CORS扩展。 但这一错误似乎与某些CORS问题有关。 您想帮我解决这个问题吗?当您使用某些方法(例如POST)时,会出现飞行前请求 它

我正在开发基于Angular 1/ASP.net技术堆栈的web应用程序。 由于某些原因,我无法使用生产服务器在本地环境上部署api服务器。我在本地env中使用nginx启动了UI端。 登录页面为:

当单击登录按钮时,它将从生产服务器调用API

但我得到了一个错误:

飞行前的响应具有无效的HTTP状态代码400

我在浏览器中打开了跨域选项,带有chrome CORS扩展。 但这一错误似乎与某些CORS问题有关。
您想帮我解决这个问题吗?

当您使用某些方法(例如POST)时,会出现飞行前请求

它是在跨域POST发生之前自动发生的请求

在发出POST请求之前,正在检查服务器上是否有正确的CORS头

您的飞行前选项请求似乎给出了无效响应。在服务器上,确保为所有选项请求返回200,并确保为所有请求在服务器上放置CORS头

我相信Angular 1也有POST请求的选项,这将阻止飞行前的请求,但您必须自己进一步调查


或者,根据您的设置,可以重写请求以避免仅由浏览器强制执行的CORS。

@danday74-感谢您的回复。我有个问题。所以,我认为CORS错误发生在浏览器端,所以服务器的响应在浏览器中是冻结的。这就是为什么我希望如果我在浏览器中启用CORS,它会工作得很好。所以,如果我从本地调用API,服务器上会发生什么?在服务器上启用CORS,确保服务器响应包含所有CORS头。如果服务器未返回正确的CORS响应头,浏览器将出错。另外,确保您的服务器CORS响应头允许飞行前选项请求方法-请参阅“谢谢”。这对我帮助很大。这是我以前不知道的新东西!再次感谢。