Не все параметры передаются при вызове jquery ajax - PullRequest
3 голосов
/ 17 марта 2010

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

$.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
    }
});

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

assignedToUserGuid
itemGuid
itemType
just_a_task
taskDescription 
taskName

Отсутствует fb_post_date, task_fb_postId и sedia_task_guid

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

Данные отправляются на контроллер asp.net, который возвращает jsonresult (отсюда contentType)

Любая помощь приветствуется. Спасибо!

Ответы [ 4 ]

2 голосов
/ 18 марта 2010

Чтобы помочь с кодированием и отладкой, вам нужно переместить данные 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

2 голосов
/ 18 марта 2010

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

  • Проверьте, имеют ли все переменные значения
  • Попробуйте удалить "_" из имен переменных
1 голос
/ 18 марта 2010

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

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

0 голосов
/ 17 марта 2010

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

, например

.ajax({
    beforeSend: function (xhr) {
  // this==the options for this ajax request
  if(! fb_post_date || !task_fb_postId || ! sedia_task_guid){
    alert("BORKED!");
  }
},
....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...