【发布时间】:2022-01-18 15:53:36
【问题描述】:
正如标题所说,问题是我使用 axios 从 Vue 发送一个请求,该请求在我发送参数时包含参数数据(我使用 console.log 看到它),但是当我收到请求时C# (.NET Core) 这些参数为空。 如果需要更多信息或代码,请告诉我。
谢谢。
Vue:
methods: {
translate() {
//This log RETURNS DATA, so parameters aren't null at this moment
console.log(this.textToTranslate, this.fromLanguage, this.toLanguage);
axios
.post(
"http://localhost:5000/api/Translate",
{
TranslateRequest: {
textToTranslate: this.textToTranslate,
fromLanguage: this.fromLanguage,
toLanguage: this.toLanguage,
},
},
{
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods":
"GET, POST, PATCH, PUT, DELETE, OPTIONS",
"Access-Control-Allow-Headers":
"Origin, Content-Type, X-Auth-Token",
},
}
)
.then((res) => {
console.log(res);
this.translatedText = res.data;
})
.catch((err) => {
console.log(err.response);
alert(err.response);
});
},
},
C#:
[ApiController]
[Route("api/[controller]")]
public class TranslateController : ControllerBase
{
[EnableCors("AllowOrigin")]
[HttpGet]
public string GetTranslatedText(TranslateRequest request)
{
//request object isn't null but their parameters are
return TranslateText(request);
}
}
【问题讨论】:
-
我不是 C# 专家,但请尝试在此处查看此解决方案:stackoverflow.com/a/59834834/1231619 此外,您不应该传递 Access-Control-Allow-* 标头,因为这些是响应来自服务器的标头。
-
@Igal 你说得对,谢谢,这只是我必须面对的解决 CORS 问题的一系列尝试的结果。
标签: c# .net vue.js asp.net-core axios