未找到Ajax发布到控制器的帖子

时间:2018-01-29 08:22:04

标签: javascript c# jquery ajax asp.net-mvc

我有以下JavaScript:

function saveAvatar() {
    var img = $('#preview-pane .preview-container img');
    $('#avatar-crop-box button').addClass('disabled');
    $.ajax({
        type: "POST",
        url: App.url + "/Save",
        traditional: true,
        data: {
            width: img.css('width'),
            height: img.css('height'),
            marginLeft: img.css('marginLeft'),
            marginTop: img.css('marginTop'),
            fileName: img.attr('src'),
            userId: this.userId
        }
    }).done(function (data) {
        if (data.success === true) {
            if (!keepCropBox) {
                $('#avatar-crop-box').addClass('hidden');
                location.reload();
            }
        } else {
            alert(data.errorMessage)
        }
    }).fail(function (e) {
        alert('Cannot upload avatar at this time');
    });
}

这是我的保存方法:

[HttpPost]
public async Task<ActionResult> Save(string marginTop, string marginLeft, string height, string width, string fileName, int userId)
{
    var image = ImageHelper.Save(marginTop, marginLeft, height, width, fileName);

    if(image != "error")
    {
        var savedProfilePicture = await userService.SaveProfilePicture(image, userId);

        if (savedProfilePicture > 0)
        {
            return Json(new { success = true, avatarFileLocation = image });
        }
    }

    return Json(new { success = false, errorMessage = "Could not save profile picture" });
}

当我在本地计算机上运行项目并且App.url设置为http://localhost:1234/Home时,这可以正常工作

但是当我将项目部署到服务器时,App.url变为:http://project-on-another-machine.com/Home。它没有使用Save-method。我总是找不到404。

我有其他方法可以正常工作,但不是这个特殊的Save方法。这是为什么?

2 个答案:

答案 0 :(得分:0)

在您的视图中,在像这样的全局变量中添加URL的值

<script>
    var params["saveUrl"] = "@Action("Save","Home")";
</script>

然后在js文件中使用此变量来访问操作方法。

$.ajax({
    type: "POST",
    url: params["saveUrl"],
    ...

答案 1 :(得分:0)

In [14]: numpy.__version__ Out[14]: '1.14.2' In [15]: scipy.__version__ Out[15]: '1.0.1' 应为Url

url: "/Home/Save/"