ajax调用ashx返回error undefined的问题

qq_36815975 2016-12-09 04:38:23
使用Framework2.0 Web程序,
在一个支付订单页面用Ajax调用ashx文件,经过反复修改仍返回error。error弹出消息:undefined undefined undefined error。
也修改过type为get、json,增加data:text,都未有奏效。
这是经过二次开发的程序,原程序使用Access数据库没有这种问题,在二次开发时将原数据库连接替换为SQL连接,相关的Parameter参数类型也都全部修改为SQL的,整个项目只在订单收款、付款这一模块出现这种错误。



<script type="text/javascript">
function pay() {
$("#__VIEWSTATE").remove();
$("#__EVENTVALIDATION").remove();
$("#btnSave").attr("disabled", "disabled");
$("#btnSave").val("正在提交中...");
var options = {
url: "/DataDeal/Price/Pay.ashx?tag=save",
type: 'POST',
//beforeSubmit: Validate,
success: function(responseText, statusText) {
$("#btnSave").attr("disabled", "");
$("#btnSave").removeAttr("disabled");
$("#btnSave").val("确定提交");
if (responseText.indexOf("true") >= 0) {
parent.location.href = "List.aspx";
return false;
}
else {
parent.art.dialog.alert("提交失败!");
}
},
error: function(XmlHttpRequest, textStatus, errorThrown) {
//alert(textStatus);
alert(XMLHttpRequest.status + "----" + XMLHttpRequest.readyState + "----" + errorThrown + "----" + textStatus);
}
};
$("#form1").ajaxSubmit(options);
return false;
}
</script>


Pay.ashx 文件代码:


public class Pay : IHttpHandler,IRequiresSessionState
{
private static readonly bOrderPay PayBll = new bOrderPay();
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
if (context.Request["tag"] != null)
{
string strTag = context.Request["tag"];
if (strTag.Equals("save"))
{
mProOrderCollect model = new mProOrderCollect();
model.Orderid = Convert.ToInt32(context.Request["hOrderId"]);
model.Proid = Convert.ToInt32(context.Request["hProId"]);
model.Collecttype = Convert.ToInt32(context.Request["ddlPayType"]);
model.Collectprice = Convert.ToDouble(context.Request["txtPayCost"]);
model.Remark = context.Request["txtRemark"];
model.Inputaccid = ((mAccount)context.Session["LoginUser"]).Id;
model.Inputdate = Convert.ToDateTime(context.Request["txtPayDate"]);
model.Collectconfrim = Convert.ToInt32(TravelFX.Tool.EnumSummary.CollectState.待审批);
model.OrderCode = context.Request["hfOrderCode"];
model.SupplyId = Convert.ToInt32(context.Request["hfSupplyId"]);
model.Confrimdate= DateTime.ParseExact(Operator.OPay.opdate, "yyyyMMdd", null);
try
{
if (CollectBll.Add(model) > 0)
{
context.Response.Write("true");
}
else
{
context.Response.Write("false");
}
}
catch
{
context.Response.Write("false");
}
}
}
}



希望有清楚的高手朋友能指点迷津。Web.config配置在二次开发时也修改过,只是增加了这一个配置:
<compilation debug="true">
<assemblies>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
</assemblies>
</compilation>

再者增加了Session:
<sessionState mode="InProc" stateConnectionString="tcpip=localhost:42424" stateNetworkTimeout="500" customProvider="DefaultSessionProvider" timeout="600">
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</providers>
</sessionState>
...全文
326 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36815975 2016-12-12
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
当一个提问者举出自己“这么试、那么试”的许多做法时,通常专业的开发人员就不回答问题了。 专业的开发者首先要讨论诊断问题的稍微深入一点的原理,绝不是乱试。遇到人品不同的业余开发方式则会绕道。
想绕道便绕道,不想参与讨论也可以不参与,但是自说自道显摆自己的“专业程序员””而对他人轻蔑出言,这无论是不是专业的程序员都是一个最起码的人品的问题,恕我直言,我的确很长时间没写程序了,但我的内心是尊重他人的。 "只要你的内心是善良的,那么对错,都是别人的事。”
qq_36815975 2016-12-12
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
正如 #1 楼所说,你把问题描述清楚,把你通过 vs 调试 jaavscript 的截屏贴出来,分析一下你集中的第一个 bug 状态上,就行了。 如果列出一大堆自己用来干扰别人思路的、“乱试、乱抄”来的往上的无关的东西,专业程序员反而不愿意参与了。
那你也列出一些你调试程序的截屏,来证明你自谓之“专业程序员”的素养。我非常看好你。
qq_36815975 2016-12-12
  • 打赏
  • 举报
回复
引用 7 楼 closurer 的回复:
从你的程序流程上看,这个由 jQuery 的 error 事件处理函数抛出的错误是调用栈上一个上层的错误,也就是很表面的错误信息。 从这个表面的错误深入进去,下一层可能是 jQuery 的异步请求超时了,或者服务器返回了 http 错误的响应码。 如果是 jQuery 的异步请求超时,那么可能是网络的连接问题,权限问题等等…… 如果是服务器返回了 http 错误响应码,那么要检查有没有更详细的错误信息……
非常感谢您的解答,我已经通过调试、修改找到了解决的关键,现在已经成功了!
apple8160 2016-12-12
  • 打赏
  • 举报
回复
你的ashx最外层有两个if 断点调试一下 是否进入到两个if里面 如果没有进入 那么你的ashx没有返回值啊
正怒月神 版主 2016-12-12
  • 打赏
  • 举报
回复
Pay 处理的值是多少?可以直接调试或者附加进程看一下
  • 打赏
  • 举报
回复
指定下dataType,跟踪下请求,看下你自己实际最后返回了什么
闭包客 2016-12-12
  • 打赏
  • 举报
回复
从你的程序流程上看,这个由 jQuery 的 error 事件处理函数抛出的错误是调用栈上一个上层的错误,也就是很表面的错误信息。 从这个表面的错误深入进去,下一层可能是 jQuery 的异步请求超时了,或者服务器返回了 http 错误的响应码。 如果是 jQuery 的异步请求超时,那么可能是网络的连接问题,权限问题等等…… 如果是服务器返回了 http 错误响应码,那么要检查有没有更详细的错误信息……
atmo 2016-12-10
  • 打赏
  • 举报
回复
你的ajax方法绝对有问题
  • 打赏
  • 举报
回复
正如 #1 楼所说,你把问题描述清楚,把你通过 vs 调试 jaavscript 的截屏贴出来,分析一下你集中的第一个 bug 状态上,就行了。 如果列出一大堆自己用来干扰别人思路的、“乱试、乱抄”来的往上的无关的东西,专业程序员反而不愿意参与了。
  • 打赏
  • 举报
回复
当一个提问者举出自己“这么试、那么试”的许多做法时,通常专业的开发人员就不回答问题了。 专业的开发者首先要讨论诊断问题的稍微深入一点的原理,绝不是乱试。遇到人品不同的业余开发方式则会绕道。
tcmakebest 2016-12-09
  • 打赏
  • 举报
回复
这种问题肯定要仔细调试啰, 到底是哪个步骤出问题很难说.

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧