ajax post call导致422错误

时间:2016-03-14 08:55:08

标签: jquery ajax

我正在尝试在网站(我已注册)的表单上发布数据,以下是我的代码:

$.ajax({
         url:'https://api.contentstack.io/v2/content_types/the_lazy_goose/entries/',
         type: "POST",
         contentType: "application/json",
         data: JSON.stringify({
                title: "John", 
                url: "2pm", 
                multi_line: "Random Text using Post call"
            }),
        headers:{
                    access_token: 'xxxxxxxxxxx',
                    api_key: 'xxxxxxxxx'
                },

        success: function() {
           alert("success");
        },
        error: function() {
               alert("ERROR");
            },
    });

这导致422(不可处理的实体),不确定哪里出错。 *我已经完成了http://www.restpatterns.org/HTTP_Status_Codes/422_-_Unprocessable_Entity并了解了“request_entity' &安培; '请求的语法'很好

网站https://contentstackdocs.built.io/rest/api/content-management-api/似乎支持Json数据

2 个答案:

答案 0 :(得分:0)

当参数验证失败时,

422用于rails。您可能缺少一些必需的参数。

另外,我不认为数据中JSON.stringify是必要的。

答案 1 :(得分:0)

所以我浏览了他们的contentstack.js文件并使用他们的Request方法(而不是ajax)来POST数据。架构也是错误的。所以这是我最后使用的代码:

<html ng-app="imgapp">
  <head>
    <script data-require="angular.js@1.4.9" data-semver="1.4.9" src="https://code.angularjs.org/1.4.9/angular.js"></script>
    <script src="script.js"></script>
  </head>

  <body ng-controller="mainCtrl as vm">
    <button ng-click="vm.changeObject();">Change object</button>
    <h1>{{vm.primary.title}}</h1>
    <img ng-src="{{vm.primary.url}}">
  </body>
</html>