ajax调用将服务端自定义异常反馈到网页提示,本地测试正常,上传阿里云服务器后却是服务器内部异常(500码),这是怎么回事?
ajax调用将服务端自定义异常反馈到网页提示,本地测试正常,上传阿里云服务器后却是服务器内部异常(500码)。
我的异常处理机制是这样:
我在程序中的错误,全部是使用异常机制,而不是方法的返回值。然后在异常独立特性中处理。
本地IIS调试完全正常,发布到服务器发现不行,经过调试仍然找不到原因。
代码过程:
1、抛出异常的代码:
2、mvc异常处理特性:
3、网页端:
其中,ajaxEx,只做了简单封装:
百度过,有人说是文件夹权限问题,但我的情况是只是抛出一个异常,完全没有涉及文件操作。
请高手指教。
我的异常处理机制是这样:
我在程序中的错误,全部是使用异常机制,而不是方法的返回值。然后在异常独立特性中处理。
本地IIS调试完全正常,发布到服务器发现不行,经过调试仍然找不到原因。
代码过程:
1、抛出异常的代码:
......
//扣减充值记录
var payList = GetRemainAmount(context, wxUser.MemberId);
payList = payList.OrderBy(c => c.PayId).ToList();
var sum = payList.Sum(c => c.Amount - c.UsedAmount);
if (info.Price > sum) throw new ShowErrorException("充值余额不足以支付!");2、mvc异常处理特性:
public class MvcHandleErrorAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext context)
{
base.OnException(context);
context.ExceptionHandled = true;
ResultType resultType = ResultType.error;
string showMessage = string.Empty;
string errorMessage = string.Empty;
//设置异常类型(影响客户端提示的图标)
if (context.Exception is ShowInfoException)
{
resultType = ResultType.info;
}
else if (context.Exception is ShowWarningException)
{
resultType = ResultType.warning;
}
//异常消息处理
if (context.Exception is ShowException)
{
//代码执行会进入这里:显示类异常:在客户端提示
showMessage = context.Exception.Message;
}
else
{
//其他类Exception:优化并记录日志,和本问题无关,代码不进入此处
......
}
context.HttpContext.Response.StatusCode = 200; //发现问题后期补救的措施,想将500错误改为200,无效果
context.Result = new ContentResult { Content = new AjaxResult { state = resultType.ToString(), message = showMessage }.ToJson() };
}
}3、网页端:
$.confirm({
title: '',
text: '是否确定支付'+price+"个xx币以查看联系方式?",
onOK: function () {
$.ajaxEx({
url: "/Info/Item/PayAndView",
type: "post",
param: { id: infoId },
success: function (data) {
self.infoForm.Person(data.Person);
self.infoForm.Phone(data.Phone);
self.infoForm.AmountTag(data.AmountTag);
self.enablePayBtn(false);
}
});
}
});其中,ajaxEx,只做了简单封装:
$.ajaxEx = function (options) {
var defaults = {
url: "",
param: [],
type: "get",
async: false,
beforeSend: null,
complete: null
};
var options = $.extend(defaults, options);
if (options.url == "") return;
if (options.type == "post") {
if ($('[name=__RequestVerificationToken]').length > 0) {
options.param["__RequestVerificationToken"] = $('[name=__RequestVerificationToken]').val();
}
}
$.ajax({
url: options.url,
data: options.param,
type: options.type,
dataType: "json",
async: options.async,
success: function (data) {
if (!data.state) { //返回的是Json格式结果集,一般是get操作
if (options.success) options.success(data);
} else { //返回AjaxResult格式的json状态数据,一般是post操作
if (data.state == "success") {
if (options.success) options.success(data);
} else {
$.alert(data.message, "错误");
}
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$.alert(errorThrown, "错误");
},
beforeSend: function () {
if (options.beforeSend) options.beforeSend();
},
complete: function () {
if (options.complete) options.complete();
}
});
}百度过,有人说是文件夹权限问题,但我的情况是只是抛出一个异常,完全没有涉及文件操作。
请高手指教。
...全文
相关推荐
asp自动上传视频并转换为flv的代码
asp自动上传视频并转换为flv的代码asp自动上传视频并转换为flv的代码asp自动上传视频并转换为flv的代码asp自动上传视频并转换为flv的代码
使用Ajax实现简单的带百分比进度条实例
需求:当进行文件长传保存等操作时,能在页面显示一个带百分比的进度条,给用户一个好的交互体验 实现步骤 JSP页面 1.添加table标签 <table id=load width=700 border=0 align=center bgcolor=#FAFAFA cellpadding=0 cellspacing=0 bordercolor=#000000 xss=removed> <tr> <td><br><br> <table width=100% border
jquery实现页面右下角消息提示框
在右下角多种方式进行消息提示,绝对无假,真实可信
HTTP 通信测试或者JAVAServlet测试
可以测试Http通信。Request发送数据后可以显示Response是否正确
基于jQurey的可同时创建多个弹出提示窗.zip
基于jQurey的可同时创建多个弹出提示窗是通用可多次创建用弹出遮罩提示窗口


