объект json представлен как application / x-www-form-urlencoded на контроллер mvc - PullRequest
0 голосов
/ 03 сентября 2010

У меня есть массив:

var list = JSON.parse('[{"id" = "8", "description" = "test"},{"id" = "10", "description" = "test_2"}]');

Я использую эти вместе другие данные для публикации с использованием метода jQuery ajax:

var data = { start: 123403987, list };

Почему значения представлены как:

start=123403987&list[0][id]=8&list[0][description] = "test"...

Где я ожидаю:

start=123403987&list[0].id=8&list[0].description = "test"...

Ответы [ 2 ]

2 голосов
/ 03 сентября 2010

Вы используете плохо отформатированный JSON, он должен иметь вид:

var list = JSON.parse('[{"id": "8", "description": "test"},{"id": "10", "description": "test_2"}]');
2 голосов
/ 03 сентября 2010

Потому что это тип контента по умолчанию. Вы можете указать другой тип. Также убедитесь, что у вас есть допустимый объект JSON (что не соответствует вашему случаю, используйте : вместо = для свойств), иначе сценарий на стороне сервера может подавиться:

$.ajax({
    type: 'POST',
    url: '/foo',
    data: '[{ id: "8", description: "test" }, { id: "10", description: "test_2"}]',
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    success: function(result) {    
        alert('ok');
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...