【发布时间】:2015-08-05 22:15:00
【问题描述】:
我正在尝试查询数据库,并在我的网页中获取结果,但是它必须通过 JavaScript(Ajax、jQuery)来完成。我已经用谷歌搜索了几个小时,但没有任何效果。它要么抛出一个解析器错误,说SyntaxError: Unexpected end of input,要么只是以未定义的形式出现。
我正在使用以下 JsonResult 方法:
[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)]
public JsonResult NextArticle(int slideID)
{
var articles = db.Slides.ToList();
var currentArticle = db.Slides.First(s => s.SlideId == slideID);
int articlePosition = articles.IndexOf(currentArticle);
articlePosition = (articlePosition + 1) >= articles.Count() ? 0 : articlePosition + 1;
var nextArticle = articles.ElementAt(articlePosition);
//nextArticle.Article.ArticleText.Substring(0, 50)+"..."
string[] returnParameters = {
nextArticle.SlideId.ToString(),
nextArticle.Image.ImageURL,
nextArticle.Article.ArticleTitle,
nextArticle.Article.ArticleText
};
return Json(returnParameters);
}
还有以下 JavaScript 函数:
function nextSlide() {
var articleLink = document.getElementsByTagName("a")[0];
$.ajax({
type: 'POST',
url: "../SlideShow/NextArticle",
data: {
slideID: articleLink.getAttribute("id"),
},
dataType: 'json', //Some places are saying I should leave this out
success: function (result) {
$(articleLink).id = result[0];
document.getElementById("articleImage").setAttribute("src", result[1]);
document.getElementById("articleTitle").innerHTML = result[2];
document.getElementById("articleText").innerHTML = result[3];
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}
});
}
【问题讨论】:
-
您的控制器是否正确获取数据。
-
尝试把 contentType: "application/json; charset=utf-8",
-
@AmmarCSE 我在
dataType: 'json',下添加了contentType: "application/json; charset=utf-8",,它仍然抛出解析器错误。我也尝试将dataType: 'json',排除在外,但这并不影响它 -
解析器错误到底是什么?
-
@AmmarCSE 输入意外结束
标签: javascript c# jquery arrays asp.net-mvc