rayangostar_co
پنج شنبه 21 اسفند 1393, 20:43 عصر
با سلام من یه فیلتر سفارشی دارم با کد زیر
protected override void HandleUnauthorizedRequest(AuthorizationContext context) {
if (context.HttpContext.Request.IsAjaxRequest())
{
var urlHelper = new UrlHelper(context.RequestContext);
context.HttpContext.Response.StatusCode = 403;
context.Result = new JsonResult
{
Data = new
{
Error = "کاربر گرامی جهت استفاده از امکانات کامل سایت باید ابتدا وارد شوید.",
LogInUrl = urlHelper.Action("Authentication", "Account", new { returnUrl = context.HttpContext.Request.Params["returnUrl"] })
},
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
else
{
base.HandleUnauthorizedRequest(context);
}
}
با کد زیر اکشنی رو فراخوانی میکنم که مزین به این فیلتره.
$.ajax({ url: '@Url.Action("SendCommentUser", "Home",null,"http")',
type: 'post',
dataType: 'json',
data: { Comment_Text: comment, productId: productId, returnUrl: '@Request.Url.AbsoluteUri' },
success: function (result) {
$("#Comment_Text").val("");
toastr.success(result.Msg);
$('div.loading').hide();
},
error: function (xhr, status) {
try {
$('div.loading').hide();
if (xhr.status == 403) {
var response = $.parseJSON(xhr.responseText);
toastr.info(response.Error, "اطلاعیه");
//window.location = response.LogInUrl;
}
} catch (e) {
alert(e.message);
}
}
همه چیز درست کار میکنه البته تو سیستم لوکال .
ولی وقتی سایت و تو وب سرور آپلود میکنم و زمانی که خط
var response = $.parseJSON(xhr.responseText);
میخواد اجرا بشه با خطای زیر مواجه میشم
JSON.parse: unexpected character at line 1 column 1 of the JSON data
تو موزیلا وقتی Response های هر دو نحوه فراخوانی و مشاهده کردم متوجه شدم که وب سرور نمی تونه اطلاعات و بصورت Json تو Response بریزه
نتیجه اطلاعات Respone در موزیلا با اجرا از وب سرور
129385
نمیدونم چرا وب سرور اطلاعات respone رو به این صورت میفرسته ولی تو لوکال درست میفرسته؟
نتیجه اطلاعات Respone در موزیلا با اجرا از local
129386
آیا باید تو webConfig تنظیمات خاصی و انجام داد
لطفا کمک کنید. بدجوری گیرم!!!!
protected override void HandleUnauthorizedRequest(AuthorizationContext context) {
if (context.HttpContext.Request.IsAjaxRequest())
{
var urlHelper = new UrlHelper(context.RequestContext);
context.HttpContext.Response.StatusCode = 403;
context.Result = new JsonResult
{
Data = new
{
Error = "کاربر گرامی جهت استفاده از امکانات کامل سایت باید ابتدا وارد شوید.",
LogInUrl = urlHelper.Action("Authentication", "Account", new { returnUrl = context.HttpContext.Request.Params["returnUrl"] })
},
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
else
{
base.HandleUnauthorizedRequest(context);
}
}
با کد زیر اکشنی رو فراخوانی میکنم که مزین به این فیلتره.
$.ajax({ url: '@Url.Action("SendCommentUser", "Home",null,"http")',
type: 'post',
dataType: 'json',
data: { Comment_Text: comment, productId: productId, returnUrl: '@Request.Url.AbsoluteUri' },
success: function (result) {
$("#Comment_Text").val("");
toastr.success(result.Msg);
$('div.loading').hide();
},
error: function (xhr, status) {
try {
$('div.loading').hide();
if (xhr.status == 403) {
var response = $.parseJSON(xhr.responseText);
toastr.info(response.Error, "اطلاعیه");
//window.location = response.LogInUrl;
}
} catch (e) {
alert(e.message);
}
}
همه چیز درست کار میکنه البته تو سیستم لوکال .
ولی وقتی سایت و تو وب سرور آپلود میکنم و زمانی که خط
var response = $.parseJSON(xhr.responseText);
میخواد اجرا بشه با خطای زیر مواجه میشم
JSON.parse: unexpected character at line 1 column 1 of the JSON data
تو موزیلا وقتی Response های هر دو نحوه فراخوانی و مشاهده کردم متوجه شدم که وب سرور نمی تونه اطلاعات و بصورت Json تو Response بریزه
نتیجه اطلاعات Respone در موزیلا با اجرا از وب سرور
129385
نمیدونم چرا وب سرور اطلاعات respone رو به این صورت میفرسته ولی تو لوکال درست میفرسته؟
نتیجه اطلاعات Respone در موزیلا با اجرا از local
129386
آیا باید تو webConfig تنظیمات خاصی و انجام داد
لطفا کمک کنید. بدجوری گیرم!!!!