Объект JQuery post JSON для сервера
Я создаю json, который должен быть размещен в jersey, сервер, работающий на гризли, который имеет веб-сервис REST, получает входящий json-объект, который необходимо вывести. Я пытаюсь, но не знаю, как правильно это реализовать.
import java.io.IOException;
import java.io.InputStream;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
import org.apache.commons.io.IOUtils;
import javax.ws.rs.*;
@Path("/helloworld")
public class GetData {
@GET
@Consumes("application/json")
public String getResource() {
JSONObject obj = new JSONObject();
String result = obj.getString("name");
return result;
}
}
У меня есть html файл, который запускает этот метод во время onload
function sendData() {
$.ajax({
url: '/helloworld',
type: 'POST',
contentType: 'application/json',
data: {
name:"Bob",
},
dataType: 'json'
});
alert("json posted!");
};
Ответы
Ответ 1
Чтобы отправить json на сервер, вам сначала нужно создать json
function sendData() {
$.ajax({
url: '/helloworld',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
name:"Bob",
...
}),
dataType: 'json'
});
}
Вот как вы бы структурировали запрос ajax для отправки json в качестве сообщения var.
function sendData() {
$.ajax({
url: '/helloworld',
type: 'POST',
data: { json: JSON.stringify({
name:"Bob",
...
})},
dataType: 'json'
});
}
Теперь json будет находиться в json
post var.
Ответ 2
Можно также использовать FormData()
. Но вам нужно установить contentType
как false
:
var data = new FormData();
data.append('name', 'Bob');
function sendData() {
$.ajax({
url: '/helloworld',
type: 'POST',
contentType: false,
data: data,
dataType: 'json'
});
}