JQuery中的REST服务的AJAX请求,当通过URL而不是通过数据对象发送参数时获得响应

时间:2017-07-19 10:27:15

标签: javascript jquery ajax rest

我使用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中删除参数并保持数据对象不变,我没有得到任何回复

1 个答案:

答案 0 :(得分:0)

你没有做错任何事,问题是API没有遵循语义规则。

当收到POST请求时,应该通过请求正文发送数据,除了可能在URL中的标识符。因此,当您指定type: 'POST'并向data提供对象时,jQuery会将您发送的信息放在这里。

但是,您正在调用的API是通过URL检索您在POST请求中发送的数据,而这实际上应该通过GET请求来完成。

因此,您必须手动将数据以application/x-www-form-urlencoded格式附加到网址,就像您在工作示例中所做的那样。