如何在javascript中XMLHttpRequest的“GET”请求中发送数据?

How to send data in 'GET' request of XMLHttpRequest in javascript?

提问人:Rahul Verma 提问时间:5/12/2023 最后编辑:ndmRahul Verma 更新时间:9/7/2023 访问量:190

问:

感谢您在这篇文章中投入时间。

我想在 XMLHttpRequest 的 GET 请求中发送数据。

function useAjax(url,data){
        const xhttp = new XMLHttpRequest();
        xhttp.onload = function(e) {
            const resData = JSON.parse(xhttp.responseText) ;
            setResponseData(true,resData)
        }
        xhttp.open("GET", url, false);
        xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhttp.send(data);
   }

我试图对打开函数参数进行更改,例如 xhttp.open(“GET”, url, [false,data]);

但仍然没有得到任何结果

javascript ajax 获取 xmlhttprequest

评论

0赞 Teemu 5/12/2023
就像对任何 GET 请求所做的那样,将数据作为 queryString 添加到 URL 中。

答:

0赞 Dm Prkp 5/12/2023 #1

Get”请求没有正文,发送一些数据使用“POST”

如果请求方法为 GET 或 HEAD,则忽略 body 参数,并将请求正文设置为 null

0赞 aw194 9/7/2023 #2

对于基于 C# 的 API,可以在方法签名中指定 [FromHeader],然后使用 ...XMLHttpRequest.setRequestHeader

const xhr = new XMLHttpRequest();
xhr.open('GET', 'http://your-host/route/endpoint');
...
xhr.setRequestHeader('MyFilter', {"item":"value", "item":"value" })
xhr.send();

然后在控制器 (C#) 中:

[HttpGet("route/endpoint")]
public async Task<IActionResult> GetListOfMyObject([FromHeader] MyFilter filter)
{
    var result = QueryForDataUsingObject(filter);
    ...
}

对象将自动反序列化为所需的类型。

评论

0赞 Lajos Arpad 9/12/2023
这是关于发送 GET 请求,而不是定义 GET 端点。