我正在尝试使用GET方法发送一个json对象。我的代码:

$.ajax({
           url: "/api/endpoint",
           type: "GET",
           data: {"sort":"date"},
           contentType: "application/json",
           dataType: "json",
           ...

但是,收到的 header 的“Content-Length”设置为零,因此服务器上的json解析器无法读取内容。

我已经尝试设置内容长度 header ,但是它仍然以零的形式出现在服务器上:
$.ajax({
           url: "/api/endpoint",
           headers: {"CONTENT_LENGTH",JSON.stringify({"sort":"date"}).length},
           type: "GET",
           data: {"sort":"date"},
           contentType: "application/json",
           dataType: "json",
           ...

任何想法如何使它工作?它必须是GET请求。

最佳答案

GET请求(at least usually)没有消息正文。如the docs中所述,jQuery将GET请求的data附加到url参数。您应该能够使用服务器应用程序从那里读取sort参数。

顺便说一句,没有用户代理会允许您设置Content-Length header -它(并且必须)根据发送的数据自动完成。

关于jquery - jQuery,使用GET方法发送JSON对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10948233/

10-12 13:35
查看更多