2010-03-17 2 views
3

У меня странная ошибка, когда мой запрос jquery ajax не отправляет все параметры.Не все параметры отправляются в jquery ajax call

$.ajax({ 
    url: "/ajax/doAssignTask", 
    type: 'GET', 
    contentType: "application/json", 
    data: { 
     "just_a_task": just_a_task, 
     "fb_post_date": fb_post_date, 
     "task_fb_postId": task_fb_postId, 
     "sedia_task_guid": sedia_task_guid, 
     "itemGuid": itemGuid, 
     "itemType": itemType, 
     "taskName": taskName, 
     "assignedToUserGuid": assignedToUserGuid, 
     "taskDescription": taskDescription 
    }, 
    success: function(data, status) { 
     //success code 
    }, 
    error: function(xhr, desc, err) { 
     //error code 
    } 
}); 

Но использование поджигатель (и отладки) я могу видеть, что только эти переменные размещаются:

assignedToUserGuid 
itemGuid 
itemType 
just_a_task 
taskDescription 
taskName 

Это отсутствует fb_post_date, task_fb_postId и sedia_task_guid

Я понятия не имею, что приведет к он должен публиковать только некоторые предметы, а не другие? Кто-нибудь знает?

данных посылается к контроллеру asp.net, который возвращает JsonResult (отсюда CONTENTTYPE)

Любая помощь оценена. Благодаря!

+0

Если вы пытаетесь опубликовать что-то, то измените 'type' на' post'. – rahul

+0

Да, вы правы ... хотя это должно быть хорошо с GET. Проблема не на стороне сервера ... но, похоже, что-то связано с js? – rksprst

+2

Вы уверены, что все переменные имеют значение перед запросом ajax? –

ответ

2

Вы можете попробовать некоторые вещи, такие как:

  • Смотрите, если все переменные имеют значения
  • Попытка удалить «_» из названия переменной
+0

В итоге оказалось, что некоторые значения не определены, хотя они были инициализированы пустым строкам и не изменены ... что странно само по себе. Но я не хотел тратить на это время (я вернусь + посмотрю, почему позже) ... поэтому я просто добавил чек для неопределенных переменных. – rksprst

0

в интересах проверки вменяемости, попробуйте добавить beforeSend к возможностям и убедитесь, что значения отправляются и идти оттуда ....

например

.ajax({ 
    beforeSend: function (xhr) { 
    // this==the options for this ajax request 
    if(! fb_post_date || !task_fb_postId || ! sedia_task_guid){ 
    alert("BORKED!"); 
    } 
}, 
.... 
2

Что вы должны для, чтобы помочь с кодированием и отладки является перенос данных JSON в переменную ... то есть, то вы можете легко увидеть, что находится в переменной перед отправкой

var myData = { 
    just_a_task: just_a_task, 
    fb_post_date: fb_post_date, 
    task_fb_postId: task_fb_postId, 
    sedia_task_guid: sedia_task_guid, 
    itemGuid: itemGuid, 
    itemType: itemType, 
    taskName: taskName, 
    assignedToUserGuid: assignedToUserGuid, 
    taskDescription: taskDescription 
}; 
var jsonData = $.toJSON(myData); 

$.ajax({ 
    url: "/ajax/doAssignTask", 
    type: "GET", 
    contentType: "application/json", 
    dataType: "json", 
    data: jsonData, 
    success: function(data, status) { 
     //success code 
    }, 
    error: function(xhr, desc, err) { 
     //error code 
    } 
}); 

Хотя У меня нет времени для запуска кода, это могут быть речевые знаки в JSON. Это должно быть, как его родной JavaScript

1

Проверьте наличие специальных символов в ваших значений данных (, {} [] " '). Вы должны избежать этих символов для JSON, чтобы работать.

Надеюсь, это поможет.