接口传参需要转成JSON格式,使用JSON.stringify()将params进行转换,打印结果没有问题,但是接口显示传参最外面的对象多了一个冒号,详见截图,网上说是接口设置headers问题,Content-Type设置过:1、application/json,2、multipart/form-data 3、pplication/x-www-form-urlencoded,都没有用,最外面的冒号始终都在,请问这种情况如何处理,非常感谢。
要看你的控制台输出的,你下面的图是你调用接口时候传的参数值,和你代码里面的console是不一样的
根据您的描述和截图,我猜测您的问题可能与接口请求的数据格式有关。在您使用JSON.stringify()将参数转换为 JSON 字符串后,您可能需要将该 JSON 字符串作为请求体发送给接口。根据您提供的截图,请求体似乎在 HTTP 请求中被包含在了 URL 参数中。
如果您使用 GET 方法请求接口,请求体应该被包含在 URL 参数中。但是,如果您使用 POST 方法请求接口,请求体应该被包含在请求体中。此时,您应该将请求头的Content-Type设置为application/json,表示请求体中的数据是 JSON 格式的。
如果您的请求头已经正确设置了Content-Type,但仍然出现了问题,您可以尝试在请求体中手动指定数据格式。具体来说,您可以将JSON.stringify()的结果存储在一个变量中,然后使用JSON.parse()将该字符串解析成一个 JavaScript 对象。然后,您可以将该 JavaScript 对象作为请求体发送,而不是将原始参数作为请求体发送。例如,您可以尝试以下代码:
const paramsObj = {
// 传入的参数
};
const jsonData = JSON.stringify(paramsObj);
const xhr = new XMLHttpRequest();
xhr.open('POST', 'your-api-url');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(jsonData);
这里,我们将JSON.stringify()的结果存储在了jsonData变量中,并在请求头中指定了Content-Type为application/json。然后,我们将jsonData作为请求体发送给了后端。
不知道你这个问题是否已经解决, 如果还没有解决的话: