提问人:gib65 提问时间:2/14/2023 更新时间:2/14/2023 访问量:55
使用 URLSearchParams() 时如何处理字符串数组中的逗号
How do I handle commas in array of strings when using URLSearchParams()
问:
我正在使用以下代码向我的后端应用程序发送 AJAX 请求:
function add() {
ajax('add', 'POST', {
content: ['abc', 'xyz,123']
});
}
function ajax(endpoint, method, payload, callback) {
const xhttp = new XMLHttpRequest();
const url = 'http://localhost:3000/' + endpoint;
xhttp.onreadystatechange = function() {
console.log('readyState: ', this.readyState);
if (this.readyState === 4) {
if (this.status === 200) {
console.log('success!');
if (callback) {
callback();
}
} else {
console.log('error: ', JSON.stringify(this));
}
}
};
xhttp.open(method, url, true);
xhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
if (payload) {
xhttp.send(new URLSearchParams(payload));
} else {
xhttp.send();
}
}
正如你所看到的,我正在将一个字符串数组传递给函数。该函数在将数组与请求一起发送之前使用数组进行格式化。这将生成一个 url 格式的参数字符串,如下所示:ajax
URLSearchParams()
content=abc,xyz,123
但你会注意到,原始数组只由两个字符串组成,其中一个是 .但是,由于逗号的原因,url 格式的字符串最终看起来像 3 个字符串:."xyz,123"
"abc", "xyz", "123"
后端需要一种方法来区分确实有 n 个原始字符串的情况和有 < n 个原始字符串的情况,其中一个或多个包含逗号。除了使用 之外,还有没有其他方法可以格式化字符串数组,或者在调用之前我可以对字符串中的逗号做些什么?或者有其他方法可以实现我的目标?URLSearchParams()
URLSearchParams()
谢谢。
答: 暂无答案
评论
content=abc,xyz,123