在ajax调用JavaScript中更正URL

时间:2017-06-28 10:04:58

标签: javascript ajax http url

我有一个GET ajax调用如下:

var changeUrl = "changePriority?newValue=" + targetValue + "&justification=" + justification
if (dataInfo == "row") {
    changeUrl += "&id=" + id
}
changeUrl += "&executedConfigId=" + executedConfigId + "&currUser=" + currentUser + "&productName=" + productName + "&eventName=" + eventName + "&alertDetails=" + JSON.stringify(alertArray);
//if the selected signal is not null then we show the product names

$.ajax({
    url: changeUrl,
    type: "GET",
    success: function (data) {
        for (var index = 0; index < checkedRowList.length; index++) {
            var row = checkedRowList[index]
            signal.list_utils.change_priority(row, targetValue);
        }
        $('#change-priority-modal').modal('hide');
        if (applicationName == "Signal Management") {
            signal.list_utils.set_value(parent_row, 'dueIn', id, signal.list_utils.get_due_in, applicationName);
            $(parentField).html(targetValue);
        }
        location.reload();
    },
    error: function (exception) {
        console.log(exception);
    }
});

我在浏览器的开发者控制台中获得的changeUrl值是:

  

http://localhost:8080/signal/singleCaseAlert/changePriority?newValue=Medium&justification=test%20justification%20first.&id=6816&executedConfigId=6704&currUser=15&productName=Wonder%20Product&eventName=1.Pyrexia&alertDetails=[{%22alertId%22:%226816%22,%22event%22:%221.Pyrexia%22,%22currentUser%22:%2215%22}]

但是我在后端获得了400个错误请求状态和http头解析错误。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

在您的JSON.stringify(alertArray)上,您还需要encodeURI();

encodeURI(JSON.stringify(alertArray));

如果在您的设计中可行,那么更好的解决方案是在POST请求的主体中发送您的JSON