gpt4 book ai didi

jquery - Ajax 调用不加载页面而是进入 .fail?

转载 作者:行者123 更新时间:2023-12-01 01:44:34 26 4
gpt4 key购买 nike

这是我目前正在开发的一个 MVC 应用程序。所以有一个页面,我们在其中显示产品详细信息。此页面上有一个链接,单击该链接会加载另一个页面,该页面显示一组处理该产品的规则。

这是我现在尝试过的:

Controller 目前没有做太多事情:

public class ProductRuleController : Controller
{
[HttpGet]
public ActionResult GetAllRulesForProduct(string productId)
{
return View("AddEditProductRule");
}
}

View :

@{
ViewBag.Title = "Add / Edit Product Rule";
}
<h2>Add / Edit Rule</h2>

JS

function ShowProductRules() {
var urlToGetProductRules = "/ProductRule/GetAllRulesForProduct/";
var productId = $('#ProductId').val();

if (productId == null) {
alert('Please Check the ProductId');
}
else {
// Make an ajax call passing in the ProductId
alert('ProductId: ' + productId);
$.ajax({
type: "Get",
url: urlToGetProductRules,
data: { productId: productId },
dataType: "json"
})
.done(function (data) {

})
.fail(function (xhr) {
alert("Something went wrong!!!")
console.log(xhr.responseText);
});
}

ajax 调用进入 .fail 部分。我检查了responseText,其中包含所需的HTML,没有任何错误。

所以我的问题是,当响应中包含所需的 HTML 时,为什么它会进入“失败”部分?我做错了什么?

提前致谢。

最佳答案

从ajax调用中删除dataType: "json"部分

那就是

$.ajax({
type: "Get",
url: urlToGetProductRules,
data: { productId: productId },
})
.done(function (data) {

})
.fail(function (xhr) {
alert("Something went wrong!!!")
console.log(xhr.responseText);
});

当您指定 dataType : "json" 时,ajax 调用将期望一个 json 响应。如果它是 html,它会将其视为错误,因此失败部分将执行。如果您仍然想要使用 dataType : "json",然后将响应转换为 json 格式。

关于jquery - Ajax 调用不加载页面而是进入 .fail?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30026637/

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