ورود

View Full Version : مشکل کار با Jquery ajax



hmahdavi921
شنبه 13 تیر 1394, 09:33 صبح
با سلام من برای دریافت اطلاعات از سرور از Jquery ajax استفاده میکنم.متد سمت سرورم رو تست کردم درست کار میکنه اما موقع اجرا شدن در صفحه مربوطه یک خطای json میده :

Message: "Invalid JSON primitive: }."


StackTrace:

" at System.Web.Script.Serialization.JavaScriptObjectDe serializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)
depthLimit, JavaScriptSerializer serializer) at System.Web.Script.Serialization.JavaScriptSerializ er.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit) at System.Web.Script.Serialization.JavaScriptSerializ er.Deserialize[T](String input) at System.Web.Script.Services.RestHandler.GetRawParam sFromPostRequest(HttpContext context, JavaScriptSerializer serializer) at System.Web.Script.Services.RestHandler.GetRawParam s(WebServiceMethodData methodData, HttpContext context) at System.Web.Script.Services.RestHandler.ExecuteWebS erviceCall(HttpContext context, WebServiceMethodData methodData)"

ExceptionType:"System.ArgumentException"




این کد متدمه .


[WebMethod]
public static ParentDataT_book.OptionBook[] SearchNameBook(string nameBook, int state)
{
var bookBusiness = new T_bookBusiness();
return bookBusiness.GetList(nameBook, (byte)0).ToArray();
}

این هم کد jquery :


function searchBook() {
j.ajax({
type: "POST",
url: "Default.aspx/SearchNameBook", //نام صفحه و متد
data: "{'nameBook': '" + j('#ContentPlaceHolder1_txt_nameBook').val() + "', 'state': '" + j('#states').val() - 1 + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var delay = function () {
AjaxSucceededSearch(msg);
};
setTimeout(delay, 1500); //remove this
},
error: AjaxFailedSearch
});
//});
};
// });
function AjaxSucceededSearch(data) {
if (result.d != null) {
alert("data is found!!!");
}
else
if (result.d == null) {
alert("data is not found!!!");
}
}
function AjaxFailedSearch(result) {
alert(result.status + ' ' + result.statusText);
}

دوستان لطفا نگاه کنید .نظری داشتید اطلاع بدید .ممنون میشم.

H:Shojaei
شنبه 13 تیر 1394, 17:23 عصر
data رو نباید داخل " " بذارید اینها رو از اول و آخرش بردارید...
داخل {} کفایت میکنه...

hmahdavi921
شنبه 13 تیر 1394, 20:04 عصر
این تغییر رو اعمال کردم .اما باز هم خطا داره :Invalid JSON primitive: nameBook

H:Shojaei
دوشنبه 15 تیر 1394, 01:03 صبح
به این صورت بنویسید:

data: {nameBook:j('#ContentPlaceHolder1_txt_nameBook').v al() , state:(j('#states').val() - 1)},




اون جایی هم که -1 کردید بیرون قبل از ایجکس عملیات رو بریزید توی یک متغیر و متغیر رو اینجا قرار بدید...