Javascript中POST请求的错误请求错误

时间:2017-11-14 21:28:26

标签: javascript ajax post

我正在尝试发出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.

1 个答案:

答案 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对象。