Ajax 调用加载完整的页面,不允许检查返回的数据
本文关键字:不允许 检查 数据 返回 调用 加载 Ajax | 更新日期: 2023-09-27 17:56:37
这是我拥有的HTML和JS:
</form>
<div class="form-group">
<div class="col-md-4">
<button id="previewButton" class="btn btn-primary">Preview</button>
</div>
</div>
</form>
<script>
$("#previewButton").click(function () {
var request = $.ajax({
url: "/Product/GetRules/",
method: "GET",
dataType: "JSON"
});
request.done(function (data) {
console.log(data);
});
request.fail(function (jqXHR, textStatus) {
console.log(textStatus);
alert("Request failed.");
});
});
</script>
这是控制器代码:
public ActionResult GetRules()
{
ProductVM sVM = new ProductVM();
sVM.ProductId = "test123";
sVM.Rules = new List<string>() { ""20/2/15"", "10/2/15" };
return Json(sVM, JsonRequestBehavior.AllowGet);
}
和模型:
public class ProductVM
{
public string ProductId { get; set; }
public List<string> Rules { get; set; }
}
它在调试时命中控制器,我可以在 VS 中看到正确的对象。我在 .done 承诺中放置了一个警报,它的工作原理是显示带有[object object]
的警报所以这意味着 AJAX 调用工作正常。
我想查看返回的 JSON,因此添加了日志语句,但浏览器在调用后重新加载页面,控制台中没有任何内容。
我在这里做错了什么?
任何帮助将不胜感激。
提前谢谢。
表单正在提交,因为您需要取消默认行为:
$("#previewButton").click(function (event) {
event.preventDefault();
event.preventDefault()
说明:如果调用此方法,则不会触发事件的默认操作。
<form> <!-- </form> replaced with <form> -->
<div class="form-group">
<div class="col-md-4">
<button id="previewButton" class="btn btn-primary">Preview</button>
</div>
</div>
</form>
<script>
$("#previewButton").click(function(e) {
e.preventDefault();/* Added prevention */
var request = $.ajax({
url: "/Product/GetRules/",
method: "GET",
dataType: "JSON"
});
request.done(function (data) {
console.log(data);
});
request.fail(function (jqXHR, textStatus) {
console.log(textStatus);
alert("Request failed.");
});
});
</script>