当字符串被直接发送请求时,它不会添加任何斜杠。
但是,如果将字符串化的字符串设置为对象属性的值,并将对象发送到服务器,则该字符串将具有反斜杠。
var data = { "A": "Aa", "B": "Bb", "C": "Cc" }; // This is JSON object
data = JSON.stringify(data); // Getting stringified
var obj = {method: "POST",
url: 'http://..XX..XXX.....com',
data: data // String is being sent as it is
};
$http(obj);// Have no slashes added
//Output: {"A":"Aa","B":"Bb","C":"Cc"}
但是,如果将字符串化的字符串设置为对象属性的值,并将对象发送到服务器,则该字符串将具有反斜杠。
var data = { "A": "Aa", "B": "Bb", "C": "Cc" };
data = JSON.stringify(data);
var obj = {method: "POST",
url: 'XXX',
data: { // String is being sent as a value of object property "Values"
"Values": data
}
};
$http(obj);//Slashes are added
//output: {"Values":"{\"A\":\"Aa\",\"B\":\"Bb\",\"C\":\"Cc\"}"}
有人可以帮忙看一下吗?
关于it技术,我需要更多的具体信息。
data
选项的对象,因此值被双重编码 - 一次由您,一次由$http
。您使用JSON.stringify()
的方式可能并不必要。 - Jonathan Lonowski