gpt4 book ai didi

javascript - 如何进行 AJAX 调用

转载 作者:行者123 更新时间:2023-12-03 11:40:09 24 4
gpt4 key购买 nike

我知道这个问题之前已得到解答,但我不知何故无法在 Controller 中执行操作。

这是操作

public JsonResult GetUpdate()
{
//get a list of valid elements
var result = getContent();
return Json(result, JsonRequestBehavior.AllowGet);
}

在我的脚本中:

$.ajax({
type: 'GET',
url: '@Url.Action("GetUpdate")',
dataType: 'json',
success: function (constraints) {
alert("Application updated");
},
error: function (ex) {
alert('Failed to retrieve update.' + ex);
}
});

使用 fiddler,我可以点击 GetUpdate,但从浏览器中 Ajax 调用失败。我是否正确访问了该 URL?

更新:以下是错误信息:“网络错误:404 未找到 - 协议(protocol)://localhost:port/Controller/@Url.Action(%22GetUpdate%22)”

通过 Fiddle 进行以下工作:协议(protocol)://localhost:端口/Controller/GetUpdate

最佳答案

Razor 代码(C# 和所有其他服务器端脚本)仅从 .cshtml 文件执行,因此 C# 和 Razor 不能在 .js 文件中使用.
'@Url.Action("GetUpdate")' 不会生成 URL,它只是一个字符串,因此您尝试请求 protocol://domain:port/Controller@Url .Action("GetUpdate")存在

您可以执行以下操作:

  • .cshtml 文件中,您可以将生成的 URL 存储在 JavaScript 变量中,并将其传递给外部 JS 文件。
  • 您可以将外部 JavaScript 移至 .cshtml 文件,以便可以使用 Razor。
  • 使用相对字符串路径,如 /Controller/GetUpdate

我推荐第一个。

关于javascript - 如何进行 AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26325498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com