私はangularから次のようなことをして、json構造をrestサービスに送信しようとしています
let test5var = {
"test5var1": {
"test5var2": "0317",
"test5var3": "9556"
},
"test5var4": "123",
"test5var": "0000046"
}
let dataPrincipalBlnc = {"test": {"test1": {"test2": "0317","test3": {"IDIOMA_ISO": " en","DIALECTO_ISO": "US"},"channel": "INT"},"input": {"test5": test5var}}};
let headers = new HttpHeaders();
headers.append('Content-Type', 'application/json');
let params = new HttpParams().set("requestData", dataPrincipalBlnc.toString()).set("authenticationType", this.authType);
return this.http.get(this.url, {params: params});
リクエストの結果は次のようになります。
ただし、現在は次のように送信されます。
https://example.com/test?requestData=%5Bobject%20Object%5D&authenticationType=cookie
どのように最初のリクエストとして見えるようにjsonオブジェクトを送信することができますか? jsonを有効なuri形式に手動で変換する必要がありますか?
AngularJSでは、次のコードを使用するだけで正常に動作しています:
var data = {
"test1": {
"test2": {
"test3": "0317",
"test4": {
"IDIOMA_ISO": " en",
"DIALECTO_ISO": "US"
},
"channel": "INT"
},
"input": {
"test5": test5var
}
}
};
$http.get(url, {
params: {
authenticationType: authType,
requestData: data
}
}).then(success(deferred), error(deferred));
また、次のコードを使用してみましたが、結果として文字が追加され、JSONが有効な形式ではないことがバックエンドで失敗しています。
encodeURIComponent(JSON.stringify(dataPrincipalBlnc)
?requestData =%257B%2522test%2522%253A%257B%2522test1%2522%253A%257B%2522test2%2522%253A%25220317%2522%252C%2522test3%2522%253A%257B%2522IDIOMA_ISO%2522%253A%2522% 2520en%2522%252C%2522DIALECTO_ISO%2522%253A%2522US%2522%257D%252C%2522channel%2522%253A%2522INT%2522%257D%252C%2522input%2522%253A%257B%2522test5%2522%253A%257B% 2522test5var1%2522%253A%257B%2522test5var2%2522%253A%25220317%2522%252C%2522test5var4%2522%253A%25229556%2522%257D%252C%2522test5var4%2522%253A%2522123%2522%252C%2522test5var5%2522% 253A%25220003303%2522%257D%257D%257D%257D&authenticationType = cookie
ありがとうございます。それでは、お元気で
データをオブジェクトとして定義し、JSON.stringifyだけを使用して問題を修正しました。
let dataPrincipalBlnc: object;
let dataPrincipalBlnc = {"test": {"test1": {"test2": "0317","test3": {"IDIOMA_ISO": " en","DIALECTO_ISO": "US"},"channel": "INT"},"input": {"test5": test5var}}};
let params = new HttpParams().set("requestData", JSON.stringify(dataPrincipalBlnc)).set("authenticationType", this.authType);
あなたの助けをありがとう