javascript - Controller 名称随机添加到 URL 中

标签 javascript asp.net visual-studio-2015

我有一个名为 HomeController 的 Controller 类和类似的客户端 JavaScript 代码

function upload(content) {
    var ajax = new XMLHttpRequest();
    ajax.open("POST", 'UploadImage', false);
    ajax.setRequestHeader('Content-Type', 'application/upload');
    ajax.send(content);
}

有时它可以使用 URL https://localhost/MyApp/Home/UploadImage 正常工作并上传数据。但有时会失败,因为 URL 中没有 Controller 名称。 Chrome 开发者工具显示错误为:

POST https://localhost/MyApp/UploadImage 404 ()

但是如果我自己在 URL 中插入/Home,则将上面的代码更改为

    ajax.open("POST", 'Home/UploadImage', false);

然后有时它可以工作并使用 https://localhost/MyApp/Home/UploadImage 但有时会失败

POST https://localhost/MyApp/Home/Home/UploadImage 404 ()

如果我重新编译并重新开始,有时它会变成相反的行为,但我无法预测何时。 GET 请求也会发生同样的情况。我不知道是否应该在 URL 中包含 Controller 名称 Home/。我怎样才能让它表现一致?

最佳答案

这仅是由于相对 URL 造成的,

它会根据您使用的代码或页面而改变..所以解决方案是您选择

ajax.open("POST", '/Home/UploadImage', false);

ajax.open('POST', '@Url.Action("UploadImage","Home")', false);

关于javascript - Controller 名称随机添加到 URL 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45340178/

相关文章:

c# - 使用 C# 和 ASP.NET 以编程方式从 SQL Server 导入/导出数据

javascript - for..in 和 hasOwnProperty

javascript - meteor 浏览器策略 : allow uploading images

c# - 通过用户控件调用页面点击事件

c# - VS 2015 的应用程序目录中的缓存文件位于哪里?

visual-studio-2015 - 是否可以在 Visual Studio 2015 社区版中导入 .publishsettings 文件?

c++ - 警告 - 未引用的内联函数已被删除

javascript - jQuery 获取最近的 li 的 id

javascript - 创建浏览器退出弹出窗口

asp.net - URL绑定(bind)失败