JSON 在 Javascript 中失败,但 POSTMAN 有效

JSON fails in Javascript but POSTMAN works

这对邮递员有效,但 Javascript 每次都失败! 有人知道我做错了什么吗?

代码示例来自这里https://westus.dev.cognitive.microsoft.com/docs/services/58994a073d9e04097c7ba6fe/operations/58994a073d9e041ad42d9ba9

    $(function() {
        var params = {     
        }; 
        $.ajax({
            url: "https://westus.api.cognitive.microsoft.com/qnamaker/v2.0/knowledgebases/dfb79d2e-4f4d-4201-8511-b9d7ab08bcb1/generateAnswer?" + $.param(params),
            beforeSend: function(xhrObj){
                // Request headers
                xhrObj.setRequestHeader("Content-Type","application/json");
                xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key", key);
            },
            type : "POST",
            data : {"question" : "Hi"}
        })
        .done(function(data) {
            alert("success");
        })
        .fail(function (jqXHR, textStatus, error) {
        alert("Post error: " + error);
    });
});

--控制台日志---

POST XHR https://westus.api.cognitive.microsoft.com/qnamaker/v2.0/knowledgebases/dfb79d2e-4f4d-4201-8511-b9d7ab08bcb1/generateAnswer [HTTP/1.1 400 Bad Request 377ms] Headers Params POST Response Call Stack ErrorObjectCode"BadArgument"Message"[{"Key":"query","Value":[""]}]" {"Error":{"Code":"BadArgument","Message":"[{\"Key\":\"query\",\"Value\":[\"\"]}]"}}

After a lot of trial and error, I was able to make it work; just for the record the Microsoft documentation on the subject, is not working.

    $.ajax({
        url: "https://westus.api.cognitive.microsoft.com/qnamaker/v2.0/knowledgebases/dfb79d2e-4f4d-4201-8511-b9d7ab08bcb1/generateAnswer",
        beforeSend: function(xhrObj){
            // Request headers
            xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","theKey");
        },
        type : "POST",
        data : {"question": "Hi"},
        dataType: "json",
        crossDomain: true
    })
    .done(function(data) {
        alert("success");
    })
    .fail(function (jqXHR, textStatus, error) {
        console.log(jqXHR);
    });

JSFiddle demo