【发布时间】:2018-10-08 12:23:26
【问题描述】:
首先,我知道有更好的方法可以实现这一目标,但这是一个学校项目,所以我别无选择,只能按照我们老师的意愿去做......
我们有一台运行 WordPress 服务器的虚拟机 (Ubuntu 16.04)。该虚拟机还运行 ASP.NET.Core Web 应用程序。
基本上,当有人在我们的 WordPress 网站上填写表格时,我们会通过 AJAX 将用户输入发送到我们的 Web API 上的路由(然后发送带有数据的 RabbitMQ 消息,但这并不重要)。
Web 应用程序控制器:
[Route("api/[controller]")]
public class ValuesController : Controller
{
[HttpPost("reservation")]
public int Create([FromBody]MyForm f)
{
//Send RabbitMQ messages with form data
}
}
WordPress 上的 AJAX 代码:
jQuery.ajax({
dataType: "json",
method: "post",
data: jQuery("#myForm").serialize(),
url: "http://localhost:65443/api/values/reservation",
succes: function()
{ console.log("Success"); }
});
当我使用 dotnet run 运行 Web 应用程序时,它说它正在侦听 localhost:65443,我可以通过 curl commando 与我的 Web API 完美“交互”。
但在 WordPress 上提交表单会记录此错误:
Failed to load resource: net::ERR_CONNECTION_REFUSED。
我不明白,WordPress 与 Web 应用程序在同一台机器上运行,因此向 localhost:65443 发送 AJAX 请求应该可以正常工作,就像 curl 突击队一样 :(
任何帮助将不胜感激!
【问题讨论】:
-
WordPress 站点是否托管在不同的端口上?如果是,您是否启用了 CORS?
-
是的 WordPress 托管在不同的端口上,什么是 CORS,如何启用它?
标签: asp.net ajax wordpress ubuntu asp.net-web-api