web-dev-qa-db-ja.com

jQueryでJSONデータを.getJSONに渡しますか?

JSONオブジェクトを.getJSONに渡そうとしていますが、不正なリクエストエラーが発生し続けます。これは私が試していることです:

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オブジェクトを渡してリクエストを簡単にする方法を知っている人はいますか?私はどんな助けや助言にも感謝します。

13
TruMan1

サイトによると、これは有効です:

$.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);
});

編集: http://api.jquery.com/jQuery.getJSON/

29
craniumonempty

JSON.stringifyは使用せず、そのままデータを渡してください。

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

JQuery GETリクエストにデータを提供する場合、クエリ文字列パラメーターの作成には、JSON文字列ではなくobjectが必要です。元のコードを次のように変更してみてください。

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

なぜ正確にコールバックが必要なのですか? (待って、jsonp)私は最初に次のことを試します:

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

firebugのどこかで、期待どおりの結果が得られるかどうかを確認してください。データとしての文字列が何をするかはわかりませんが、オブジェクトを与えるだけで問題なく動作します。

1
Johan

する必要はありませんJSON.stringfy[〜#〜] json [〜#〜]オブジェクトを渡すだけで、jQueryはそれを使用してURLパラメータを構築します

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

OR

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);
        });
0
Rafay

私はjsonをエンコードしてみましたが、うまくいきました。

それがどれほど効率的または実用的であるかはわかりません。上記の質問の回避策と同じように共有してください。

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