从web角色发布到另一个web角色Windows Azure

从web角色发布到另一个web角色Windows Azure,azure,azure-web-roles,Azure,Azure Web Roles,目前,我的解决方案中有两个web角色,一个用于主web应用程序,另一个用作web应用程序和移动应用程序的API 它们彼此独立工作,但我很难将数据从web应用程序角色的视图发布到API角色的API控制器 这是API控制器中的方法: public void Post([FromBody]string value) { var post = (Post)JsonConvert.DeserializeObject(value, typeof(Post)); AddPost(post);

目前,我的解决方案中有两个web角色,一个用于主web应用程序,另一个用作web应用程序和移动应用程序的API

它们彼此独立工作,但我很难将数据从web应用程序角色的视图发布到API角色的API控制器

这是API控制器中的方法:

public void Post([FromBody]string value)
{
    var post = (Post)JsonConvert.DeserializeObject(value, typeof(Post));
    AddPost(post);
}
下面是我试图发布的视图中的JavaScript:

<script>
    $(function () {
        var onPost = function () {
            $.post("http://localhost:8081/api/Post",
                {
                    "value": $('#postForm').serialize()
                }
            ).success(function () {
                alert("SUCCESS");
            }).fail(function () {
                alert("FAILURE");
            });
        };
    });
</script>
编辑:


我没有收到错误,也没有调用任何警报函数。但是,单击触发此事件的按钮时,URL将更改为包含已序列化表单的条目。

最好从服务器端(如web应用程序中的MVC controller)调用API。您可以包括安全密钥和其他您不想向他人公开的内容。当您直接从javascript为另一个子域或url进行API调用时,您正在创建跨域ajax请求

在javascript中,您将在web应用程序中对控制器操作进行ajax调用。Web应用程序将呼叫它正在与之通话的任何服务

您还可以使用POSt/GEt/PUt/DELETE请求从fiddler测试API


如果您想直接从javascript调用并在不同子域下托管web角色,则需要发出CORS请求:。您还可以看看这个相关问题:

如果您提供更多关于您的行为的信息,可能会有所帮助。你有错误吗?另外,在关于失败回调的ajax文章中,您可以获得更多错误信息。有关获取jqXHR的更多信息,请参阅,以便您可以查看实际遇到的错误。感谢您提供有关失败回调的提示。不幸的是,它没有被调用。我更新了帖子进一步解释。似乎是一个跨域通话问题。尝试直接使用像Fiddler这样的工具发布。如果您能够做到这一点,请阅读有关如何进行跨域ajax请求的内容。