C# HttpReportMessage responseText未显示在对Web Api的CORS请求中
我已经建立了一个WebApi项目,它托管在不同的服务器上。 我正在尝试从我的web项目中调用web api POST方法。 请求是CORS。 我能够从web项目成功调用该方法,调试器显示一切正常。 所有方法都通过初始化HttpResponseMessage对象从api向客户端调用发送错误/成功响应 例如:C# HttpReportMessage responseText未显示在对Web Api的CORS请求中,c#,asp.net,asp.net-mvc,asp.net-web-api,cors,C#,Asp.net,Asp.net Mvc,Asp.net Web Api,Cors,我已经建立了一个WebApi项目,它托管在不同的服务器上。 我正在尝试从我的web项目中调用web api POST方法。 请求是CORS。 我能够从web项目成功调用该方法,调试器显示一切正常。 所有方法都通过初始化HttpResponseMessage对象从api向客户端调用发送错误/成功响应 例如: HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, "Submitted successfully
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, "Submitted successfully." );
理想情况下,在客户端发送消息
“已成功提交。”
应出现在响应对象的“responseText”属性中,但对于此CORS请求,其出现为空。
我得到的HttpStatusCode.OK代码正确为200,但缺少响应文本,因为我需要通知用户事件是否正确发生
相反,如果我从同一个域调用api方法,我确实可以在响应对象的“responseText”属性中得到正确的操作和错误消息
我一直在寻找这个问题,但没有得到任何线索,究竟是什么问题
在API中
[HttpPost]
public HttpResponseMessage SendResponse()
{
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, "Submitted successfully.");
return response;
}
来自客户
$.post("http://127.0.0.1:81/api/Controler/SendResponse", function (data) {
if (data) {
alert(data);
} else {
}
});
请提供帮助并说明原因。
非常感谢你的帮助
提前感谢。请显示您执行请求的代码。您好,您看过这篇文章吗?@CodeCaster我添加了示例代码。您的
函数(数据)
就是成功处理程序。如果没有调用它,则$.post()
调用不成功。检查浏览器的控制台。这不像“使用CORS,你的反应身体会被剥去”。是的@CodeCaster,这是成功处理程序,而且它也会被调用。我得到的是data.responseText为空,它应该包含“submittedsuccessfully”。在同一域中,我得到data.responseText=“submittedsuccessfully.”。