Передача данных JSON.getJSON в jQuery?

Я пытаюсь передать объект JSON .getJSON, но я продолжаю получать плохую ошибку запроса. Вот что я пытаюсь сделать:--3-->

var data = {
    "SomeID": "18",
    "Utc": null,
    "Flags": "324"
};

$.getJSON("https://somewhere.com/AllGet?callback=?", JSON.stringify(data), function (result) {
    alert(result);
});

В настоящее время, чтобы заставить его работать, я должен это сделать, но мне не нравится, как я должен вручную построить строку запроса:

$.getJSON("https://somewhere.com/AllGet?SomeID=18&Utc=&Flags=324&callback=?", null, function (result) {
        alert(result);
    });

кто-нибудь знает, как сделать запросы проще, когда объекты JSON передаются? Я признателен за любую помощь или совет.

7 ответов


согласно сайту, это действительно:

$.getJSON("test.js", { name: "John", time: "2pm" }, function(json) {
    alert("JSON Data: " + json.users[3].name);
    });

Так попробовать:

var data = {
    SomeID: "18",
    Utc: null,
    Flags: "324"
};

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result) {
    alert(result);
});

edit:http://api.jquery.com/jQuery.getJSON/


Не используйте JSON.stringfy, просто передайте данные как есть.

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result) {
    alert(result);
});

когда вы предоставляете данные в запрос jQuery GET, он ожидает объект, не строка JSON, для построения параметров строки запроса. Попробуйте изменить исходный код на следующее:

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result) {
    alert(result);
});

вам не нужно делать JSON.stringfy, просто передать JSON object, jQuery построит ваш параметр URL с этим

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result) {
    alert(result);
});

почему именно вам нужен обратный вызов? (Ой, подождите, jsonp) сначала я бы попробовал следующее:

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function(result) {
  alert(result);
});

где-то в Firebug и посмотреть, если он возвращает то, что вы ожидаете. Я не уверен, что делает строка как данные, но просто предоставление объекта отлично работает afaik.


$.getJSON("https://somewhere.com/AllGet?callback=?", {SomeID:"18",Utc:null,Flags:"324"}, function (result) {
        alert(result);
    });

или

var data = {
    "SomeID": "18",
    "Utc": null,
    "Flags": "324"
};


$.getJSON("https://somewhere.com/AllGet?callback=?",
 {
SomeID:data.SomeID,
Utc:data.Utc,
Flags:data.Flags
},
 function (result) {
            alert(result);
        });

Я попытался кодировать json, и это сработало.

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

 $.getJSON("https://somewhere.com/AllGet?data="+encodeURI(JSON.stringify(data)), function (result) {
        alert(result);
 });