JQuery размещение JSON
update: я хотел бы передать var value
на сервер
привет,
такой же старый, такой же старый...:)
У меня есть форма под названием <form id="testForm" action="javascript:test()">
и область кода, называемая <code id="testArea"></code>
Я использую этот код для строения и отображения данных в области кода:
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
, вы увидите, что заголовок страницы заполняется.
Также я хочу использовать этот кусок script для отправки данных:
function authenticate(userName, password) {
$.ajax
({
type: "POST",
//the url where you want to sent the userName and password to
url: 'username:[email protected] 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
данные в нужном месте.
Ответы
Ответ 1
'data' должен быть строгим JavaScript-объектом:
data: JSON.stringify({ "userName": userName, "password" : password })
Чтобы отправить formData
, перейдите к stringify
:
data: JSON.stringify(formData)
Для некоторых серверов также требуется тип содержимого application/json
:
contentType: 'application/json'
Здесь также более подробный ответ на аналогичный вопрос: Jquery Ajax Проводка json в webservice
Ответ 2
Вы публикуете JSON, как этот
$.ajax(url, {
data : JSON.stringify(myJSObject),
contentType : 'application/json',
type : 'POST',
...
если вы передаете объект как settings.data. jQuery будет преобразовывать его в параметры запроса и по умолчанию отправлять с помощью приложения типа данных /x -www-form-urlencoded; charset = UTF-8, возможно, не то, что вы хотите
Ответ 3
Если вы отправляете этот почтовый запрос в кросс-домен, вы должны проверить эту ссылку.
fooobar.com/info/32841/...
Ваш сервер не принимает запрос на отправку через сайт. Поэтому необходимо изменить конфигурацию сервера, чтобы разрешить запросы на межсайтовый сайт.