Oli*_*ain 53 javascript ajax jquery
我正在使用的服务API具有给定的GET方法,该方法要求在请求的主体中发送数据.
正文中所需的数据是由hypen分隔的id列表,可能非常大,因此必须在正文中发送,否则它可能会在浏览器/代理/ web服务器等链中的某处发生.注意我无法控制服务或API,因此请不要提出更改建议.
我正在使用以下jQuery代码但是在fiddler中观察请求/响应我可以看到我发送的"数据"总是被转换并附加到查询字符串,尽管我将"processData"选项设置为false ...
$.ajax({
url: "htttp://api.com/entity/list($body)",
type: "GET",
data: "id1-id2-id3",
contentType: "text/plain",
dataType: "json",
processData: false, // avoid the data being parsed to query string params
success: onSuccess,
error: onError
});
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何强制在请求正文中发送"数据"值?任何帮助表示赞赏,提前谢谢.
End*_*ssa 50
通常,这不是系统如何使用GET请求.因此,很难让你的图书馆一起玩.实际上,规范说"如果请求方法是GET或HEAD区分大小写的匹配,就好像数据为空".所以,除非您使用的浏览器不遵守规范的这一部分,否则我认为您运气不佳.
您可以在自己的服务器上设置端点以获取POST ajax请求,然后将服务器代码中的端点重定向到带有正文的GET请求.
如果您与主体是数据的GET请求没有绝对联系,那么您有两种选择.
POST with data:这可能就是你想要的.如果要传递数据,这可能意味着您正在修改某个模型或在服务器上执行某些操作.这些类型的操作通常使用POST请求完成.
使用查询字符串数据获取:您可以将数据转换为查询字符串参数,并将它们传递给服务器.
url: 'somesite.com/models/thing?ids=1,2,3'
Run Code Online (Sandbox Code Playgroud)
小智 5
我们一般都知道,为了按照http标准发送数据,我们通常使用POST请求。但如果您确实想在您的场景中使用 Get 发送数据,我建议您使用查询字符串或查询参数。
1.GET 使用查询字符串作为.
{{url}}admin/recordings/some_id
这里 some_id 是必须发送的参数,可以在服务器端使用req.params.some_id 。
2. GET 使用查询字符串作为{{url}}admin/recordings?durationExact=34&isFavourite=true
这里的durationExact,isFavourite是可选的发送字符串,可以在服务器端使用req.query.durationExact 和req.query.isFavourite 。
3. GET 发送数组
{{url}}admin/recordings/sessions/?os["Windows","Linux","Macintosh"]
您可以像这样在服务器端访问这些数组值
let osValues = JSON.parse(req.query.os);
if(osValues.length > 0)
{
for (let i=0; i<osValues.length; i++)
{
console.log(osValues[i])
//do whatever you want to do here
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106227 次 |
| 最近记录: |