提前道歉,我是 CORS 新手,所以可能是我缺少的东西。
我正在尝试在当前的本地主机中设置从一个本地主机端口到另一个本地主机端口的 CORS。我已经确认使用相同语言/框架构建的两个应用程序是可能的,但我遇到了两种不同语言/框架的问题。
目前,每个 localhost 端口都是这样构建的 -
本地主机1:React/.Net C#
Localhost2:React/.Net C#
Localhost3:ASP 经典
我能够在 localhost 1 和 2 之间完成 CORS,但在处理 localhost2 和 localhost 3 之间的 CORS 时,我不断收到与标头中的“Access-Control-Allow-Origin”相关的错误。
下面是我当前尝试将数据发布到的 ASP 经典文件,该文件用于确认数据正在发送 -
<%
Response.AddHeader "Access-Control-Allow-Origin", "*"
Response.AddHeader "Access-Control-Allow-Methods", "POST, OPTIONS"
Response.AddHeader "Access-Control-Allow-Headers", "Content-Type"
Response.AddHeader "Access-Control-Allow-Credentials", "true"
If Request.ServerVariables("REQUEST_METHOD") = "OPTIONS" then
' Handling preflight request
Response.AddHeader "Access-Control-Allow-Origin", "*"
Response.AddHeader "Access-Control-Allow-Methods", "POST, OPTIONS"
Response.AddHeader "Access-Control-Allow-Headers", "Content-Type"
Response.AddHeader "Access-Control-Allow-Credentials", "true"
Response.Status = 200
Response.End
End If
' Check if it's a POST request
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
Dim requestData, id1
On Error Resume Next
Set requestData = JSONParse(Request.Form("data")) ' Assuming "data" is the key where JSON is sent
On Error Goto 0 ' Re-enable default error handling
If Err.Number <> 0 Then
' Handle JSON parsing errors
Response.Status = 400 ' Bad Request
Response.Write "Error while parsing JSON: " & Err.Description
Response.End
End If
id1 = requestData("id1")
If id1 = "" Or Not IsNumeric(id1) Then
' Invalid or missing data in the JSON payload
Response.Status = 400 ' Bad Request
Response.Write "Invalid or missing ID data"
Response.End
Else
' Respond with a confirmation message
Response.AddHeader "Content-Type", "application/json" ' Set appropriate Content-Type
Response.Write "{ ""message"": ""Received the data successfully"" }" ' Respond with JSON confirming data receipt
Response.End
End If
Else
' Handling non-POST requests
Response.Status = 405 ' Method Not Allowed
Response.Write "Only POST requests are allowed"
Response.End
End If
%>
下面是我在 Chrome 中查看开发工具/问题时收到的消息。
我缺少什么/我该如何解决这个问题?
提前感谢您的帮助:)
旁注 - 是的,我知道 * 是一个安全问题,我只是使用通配符进行测试。
我发现了我的问题。
我必须在 IIS 中的 HTTP 标头部分中设置 CORS 标头,以允许 CORS 发布到我的本地主机,而不是在 ASP 经典代码的单个文件中设置详细信息。
我相信这是由于服务器级别的问题而不是代码相关的问题。