Передача данных 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);
});
Не используйте 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);
});