AJAX responseText未定义

Javascript代码:

............... ............... var cutid = $(th).attr("data-cutid"); var request = $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "Services/Cut.asmx/CheckCuts", data: "{'cuts':" + JSON.stringify(ListCuts) + ",'idCut':'" + cutid + "'}", dataType: "json" }).responseText; alert(request); // undefined 

来自Web服务的function:

  [WebMethod] public string CheckCuts(List cuts, Guid idCut) { return UtilCut.CheckCuts(cuts, idCut).ToString(); } 

responseText未定义。 为什么?


我向ajax请求添加了async:false 。 将async设置为false意味着您调用的语句必须在函数中的下一个语句被调用之前完成。

此代码有效:

 function AjaxCheckCuts(ListCuts,cutid) { var request = $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "Services/Cut.asmx/CheckCuts", async: false, data: "{'cuts':" + JSON.stringify(ListCuts) + ",'idCut':'" + cutid + "'}", dataType: "json" }).responseText; var r = jQuery.parseJSON(request); r = rd; return r; } 

Web服务是否正常工作? 它返回HTTP 200吗? 你能看到使用F12工具或Fiddler返回的数据吗?

$.ajax()返回延迟。 定义一个done方法,让它在异步调用完成时执行。 没有responseText属性,这就是它返回undefined的原因。

试试这个:

 var cutid = $(th).attr("data-cutid"); var request = $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "Services/Cut.asmx/CheckCuts", data: "{'cuts':" + JSON.stringify(ListCuts) + ",'idCut':'" + cutid + "'}", dataType: "json" }); request.done(function(result){ alert(result); });