我有以下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方法。这是为什么?
答案 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/"