JQuery размещения JSON - PullRequest
       2

JQuery размещения JSON

171 голосов
/ 06 апреля 2011

обновление: я хотел бы передать var value на сервер

привет, такой же старый, такой же старый ...:)

У меня есть форма с именем <form id="testForm" action="javascript:test()"> и область кода с именем <code id="testArea">

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

var formData = form2object('testForm');
document.getElementById('testArea').innerHTML = JSON.stringify(formData, null, '\t');
var value = JSON.stringify(formData, null, '\t');

Я хочу отправить эти данные в файл JSON. Я работал над этим проектом: http://ridegrab.com/profile_old/, и если вы нажмете кнопку Submit Query, вы увидите заполнение заголовка страницы.

Также я хочу использовать этот фрагмент скрипта для отправки данных:

    function authenticate(userName, password) {
    $.ajax
    ({
        type: "POST",
        //the url where you want to sent the userName and password to
        url: 'username:password@link to the server/update',
        dataType: 'json',
        async: false,
        //json object to sent to the authentication url
        data: '{"userName": "' + userName + '", "password" : "' + password + '"}',
        success: function () {

        alert("Thanks!"); 
        }
    })
}

Опять же, все, что мне нужно, - это возможность отправлять эти данные JSON на сервер. Мой сервер настроен на update or POST данные в нужном месте.

Ответы [ 3 ]

257 голосов
/ 03 ноября 2012

Вы публикуете JSON вот так

$.ajax(url, {
    data : JSON.stringify(myJSObject),
    contentType : 'application/json',
    type : 'POST',
    ...

если вы передадите объект как settings.data, jQuery преобразует его в параметры запроса и по умолчанию отправляет с типом данных application / x-www-form-urlencoded; charset = UTF-8, вероятно, не то, что вы хотите

193 голосов
/ 06 апреля 2011

'data' должен быть строковым объектом JavaScript:

data: JSON.stringify({ "userName": userName, "password" : password })

Чтобы отправить formData, передайте его stringify:

data: JSON.stringify(formData)

Для некоторых серверов также требуется тип контента application/json:

contentType: 'application/json'

Здесь также есть более подробный ответ на аналогичный вопрос: Jquery Ajax Публикация json в веб-сервис

2 голосов
/ 26 января 2016

В случае, если вы отправляете этот почтовый запрос на междоменный домен, вы должны проверить эту ссылку.

https://stackoverflow.com/a/1320708/969984

Ваш сервер не принимает междоменный почтовый запрос.Поэтому необходимо изменить конфигурацию сервера, чтобы разрешить межсайтовые запросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...