我使用ajax请求来调用REST服务,并且我使用post方法传递参数。当我在REST URL中传递参数时,我从REST服务获得响应,但是当我通过数据对象发送参数时,我没有得到任何响应。我做错了吗?
$.ajax({
type: "POST",
url: "myURL?ID=5087&name=hello",
data:{
'id':'5087',
'name':'hello',
},
success: function(msg){
alert('wow' + msg);
}
});
在上面的请求中如果我从URL中删除参数并保持数据对象不变,我没有得到任何回复
答案 0 :(得分:0)
你没有做错任何事,问题是API没有遵循语义规则。
当收到POST请求时,应该通过请求正文发送数据,除了可能在URL中的标识符。因此,当您指定type: 'POST'
并向data
提供对象时,jQuery会将您发送的信息放在这里。
但是,您正在调用的API是通过URL检索您在POST请求中发送的数据,而这实际上应该通过GET请求来完成。
因此,您必须手动将数据以application/x-www-form-urlencoded
格式附加到网址,就像您在工作示例中所做的那样。