Подтвердить что ты не робот

Объект 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!");
        };
4b9b3361

Ответ 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'
    });
}