我正在用php
laravel
和react.js
编写程序。但是我对这些很陌生。无论如何,在react
中,我正在使用ajax
发送API请求。
像这样:
const sendquery = {
"async": true,
"crossDomain": true,
"url": url,
"method": "POST",
"headers": {
"Authorization": "Bearer " + tkid,
"Accept": "application/json",
"Content-Type": "application/json",
},
"processData": false,
"data": query
};
$.ajax(sendquery).done(function (response) {
console.log('Survey Request :' + response);
});
当我console.log()
时,还有另一个API请求可以很好地打印,因为它们是数组类型。但这必须是json
。我用 Postman 测试了API,一切正常。但是我仍然有这样的输出:
Survey Request :[object Object]
任何人都可以帮忙吗?
答案 0 :(得分:4)
您可以尝试使用JSON.stringify(response)
,但请注意,它不适用于所有类型,例如,请参见JSON.stringify doesn't work with normal Javascript array。
答案 1 :(得分:2)
除了@Beris Demiray所写的内容之外,另一个选择是写:
console.log('Survey Request :', response);
意味着将对象作为第二个参数放入日志。
这将为您提供一个可以在调试器中打开的对象。 之所以使用此选项更好,是因为JSON.stringify不会对所有对象进行字符串化,因此您可以查看所有对象。
答案 2 :(得分:1)
使用 JSON.parse 函数,如下所示:
JSON.parse(response, null, 2)
答案 3 :(得分:1)
要获取json
console.log(JSON.stringify(response));
获取结构化JSON
console.log(JSON.stringify(response, undefined, 2));
答案 4 :(得分:1)
像这样使用console.dir(object:any)->
$.ajax(sendquery).done(function (response) {
console.dir(response);
});
答案 5 :(得分:1)
答案 6 :(得分:1)
虽然我承认上述所有答案,但必须指出为什么您似乎在控制台上会得到该结果。
执行此操作时:
console.log('Survey Request :' + response);
您基本上是在尝试将原始值'Survey Reguest :'
与作为对象的复杂值response
连接起来。 Javascript无法将对象response
转换为原始值。通过简单地将+
替换为,
表示您将response
对象作为单独的参数发送。然后,JavaScript将参数分别记录到控制台。