gpt4 book ai didi

javascript - 使用 $.ajax POST 将查询字符串参数传递给 WebService

转载 作者:行者123 更新时间:2023-11-28 05:13:03 26 4
gpt4 key购买 nike

如果我有一个 Web 服务需要多个查询字符串参数来查询底层数据库,我应该将它们放在 URL 中还是可以将它们放入一个变量中,然后将其传递给 $.ajax 请求的数据参数?我的问题的一部分很简单 - 数据参数到底代表什么?

在下面的代码片段中,targetURL 已成功作为 URL 传入。但是,当我尝试将“参数”作为数据参数(data:parameters)传递时,调用失败。

    function JSONTest() {

//var targetURL = "http://localhost:49633/compass/compatability/webservices/SearchDatabase.ashx?mode=contact&searchvalue=" + encodeURI(document.getElementById("jsonInput").value) + "&format=json";
var targetURL = "http://localhost:49633/compass/compatability/webservices/SearchDatabase.ashx";
var parameters = "mode=contact&searchvalue=da&format=json";

document.getElementById("targetURL1").innerText = targetURL;
document.getElementById("ResultTable").innerHTML = "";

$.ajax({
type: "POST", //rest Type
url: targetURL,
data: parameters,
async: false,
contentType: "application/json; charset=utf-8",
dataType: "json",
complete: function (jqXHR, textStatus) {
jsonResponse = $.parseJSON(jqXHR.responseText);
for (i = 0; i < jsonResponse.length; i++) {
if (i % 2 == 0) {
createTableRow(i, "tableRow");
} else {
createTableRow(i, "tableRowAlternating");
}
}
document.getElementById("ReturnTest2").style.display = "block";
}
});
};

最佳答案

如果您希望按照您的 contentType 暗示发送 json,那么您需要通过从对象开始然后将该对象字符串化来将数据从 urlencoded 字符串更改为 json

var data = {
mode: 'contact',
searchvalue: 'da',
format: 'json'
}
var parameters = JSON.stringify(data);

如果您希望服务器上有标准形式的编码数据,则删除:

contentType: "application/json; charset=utf-8",

也永远不要使用async: false,它已被弃用,并且一直是一种糟糕的做法

关于javascript - 使用 $.ajax POST 将查询字符串参数传递给 WebService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41213178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com