【发布时间】:2013-04-15 10:21:41
【问题描述】:
我有一个控件,它有一个文本框,当它的内容发生变化时,它会欺骗这个 javascript 函数:
page 参数是 document.URL,因为控件没有附加的 .asxc 页面,fieldValue 是文本框的值。
function UpdateFieldsOnListSelection(page, fieldValue) {
$.ajax({
type: "POST",
url: page + "/IsSelectedListPictureLibrary",
data: { "libraryInfo": fieldValue },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert("Success!");
},
error: function (jqXHR, textStatus, errorThrown) {
alert("jqXHR: " + jqXHR.status + "\ntextStatus: " + textStatus + "\nerrorThrown: " + errorThrown);
}
});
};
它一直抛出这个错误:
jqXHR:200
文本状态:解析器错误
errorThrown: SyntaxError: JSON.parse: 意外字符
IsSelectedListPictureLibrary的代码:
[WebMethod]
public static bool IsSelectedListPictureLibrary(string libraryInfo)
{
if (string.IsNullOrEmpty(libraryInfo)) return false;
var common = new Utility();
var storedLibraryInfo = common.GetStoredLibraryInfo(libraryInfo);
if (storedLibraryInfo == null) return false;
var web = SPContext.Current.Site.OpenWeb(storedLibraryInfo.WebId);
var spList = web.Lists[storedLibraryInfo.LibraryId];
if (spList.BaseTemplate == SPListTemplateType.PictureLibrary)
{
web.Dispose();
return true;
}
web.Dispose();
return false;
}
我尝试将 ajax 中的 json 更改为 jsonp,但出现了同样的错误。
我尝试更改data 的格式。
有什么想法吗?
【问题讨论】:
-
响应是什么样的?
-
尝试将Ajax参数中的
contentType和dataType去掉,让他们自动识别 -
@RaraituL 这行得通。您能否发表您的评论作为答案,以便我将其作为答案。
-
@Daniel Ziga:太好了..我现在就去做