我正在尝试发出POST请求,但我收到了一个错误的请求"错误。如果有人能告诉我这里做错了什么,我将不胜感激。
function mkSentiTopics() {
dta['n_clusters'] = 3;
$.ajax({
type: "POST",
url: "http://saxonydemoubuntu.southcentralus.cloudapp.azure.com/sentitopic",
data: JSON.stringify(dta),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(response) {
alert("success");
},
beforeSend: function() {
},
error: function(xhr, stats) {
alert("error");
}
});
}
" DTA"是一本字典
// dta["sentis"] is a list of numbers
// dta["texts"] is a list of strings
// dta["n_clusters"] is an int.
答案 0 :(得分:0)
错误表明您发送到服务器的有效负载的结构与预期的不匹配,因此拒绝它。不知道API签名,我们无能为力。
但是,我将在黑暗中拍摄并根据你发布的这一部分提出以下建议:
// dta["sentis"] is a list of numbers
// dta["texts"] is a list of strings
// dta["n_clusters"] is an int.
当你JSON.stringify(dta)
时,确保输出完全匹配 API所期望的内容,注意JSON只知道布尔值,数组,对象,字符串和数字,进一步注意到{{ 1}},true !== "true"
等等。
示例:
1 !== "1"
如果您的API要求存在根密钥“dta”,或者结构不同,请相应地修改您的let dta = { // Note object wrapper
sentis: [1, 2, 3, 4], // Note lack of ""
texts: ["a", "b", "c"], // Note presence of ""
n_clusters: 5 // 'Naked' number
}
console.log(JSON.stringify(dta, 0, 1)); // Note that "dta" is not a root key
对象。