如何在有效负载而不是formdata上发布数据

时间:2014-11-27 14:30:13

标签: jquery ajax json alfresco payload

我试图从我制作的网络脚本向Alfresco服务发出请求,并在有效负载上传递一些json数据。

这是Alfresco的服务:

http://localhost:8080/share/proxy/alfresco/api/internal/downloads

我需要将一个json数组传递给某个脚本节点,就像那样:

var jsonData = "[{'nodeRef':'workspace://SpacesStore/920b43d4-e79c-40eb-96f3-1dff3a169929'},  {'nodeRef':'workspace://SpacesStore/f19fba4b-0cf6-4379-a858-70d0d7d9efb0'},{'nodeRef':'workspace://SpacesStore/6ea51288-9364-4070-a23b-499025a6c1f9'}]";

我这样打电话

$.ajax({
    url: serviceUrl,
    type: "POST",
    dataType: "json",
    data: jsonData
}); 

不幸的是,当我从开发人员工具中查询请求列表时,我发现我的json数据在请求中作为表单数据传递,我收到内部服务器错误响应。

我看到在另一个网站上使用相同的服务,并且数据作为有效负载传递,因此,我认为确实需要在有效负载上传递数据。

有谁知道如何强迫它?

1 个答案:

答案 0 :(得分:31)

我认为这取决于请求的Content-Type标头;如果内容类型为" application / x-www-form-urlencoded"然后它显示在表格数据下。如果你把 - 例如 - Content-Type:application / json,json应该是有效载荷的一部分。您可以使用:

$.ajax({
    url: serviceUrl,
    type: "POST",
    dataType: "json",
    data: jsonData,
    contentType: "application/json"
});