AJAX将对象数组发布到端点

时间:2017-05-22 07:13:43

标签: jquery arrays ajax object post

我正在尝试将一组对象发布到API端点(onClick),但我一直收到 400 Bad Request 错误。

我不完全确定我在这里做错了什么,并且希望能帮助解决这个问题。

我的代码如下:

$('#test-post').on('click', function() {

          var postData = [
            {
              "artist": "Artist Name",
              "title": "Artist Title",
              "genre": "string",
              "duration": "2:05",
              "url": "Artist url",
            },
            {
              "artist": "Artist Name",
              "title": "Artist Title",
              "genre": "string",
              "duration": "2:05",
              "url": "Artist url",
            }
          ];

          $.ajax({
            url: 'http://localhost:8000/api/endpoint',
            type: 'POST',
            dataType: 'json',
            contentType: 'application/json',
            data: JSON.stringify(postData),
            success: function(data) {
              console.log('Data has been posted');
              console.log(data);
            },
            error: function(err) {
              console.log(err.statusText);
            }
          });
        });

非常感谢任何帮助。

谢谢

2 个答案:

答案 0 :(得分:0)

这是工作代码。似乎缺少JQuery。

$('#test-post').on('click', function() {

          var postData = [
            {
              "artist": "Artist Name",
              "title": "Artist Title",
              "genre": "string",
              "duration": "2:05",
              "url": "Artist url",
            },
            {
              "artist": "Artist Name",
              "title": "Artist Title",
              "genre": "string",
              "duration": "2:05",
              "url": "Artist url",
            }
          ];

          $.ajax({
            url: 'http://localhost:8000/api/endpoint',
            type: 'POST',
            dataType: 'json',
            data: {'params': JSON.stringify(postData)},
            success: function(data) {
              console.log('Data has been posted');
              console.log(data);
            },
            error: function(err) {
              console.log("Error is: " + err.statusText);
            }
          });
        });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test-post">Click me</div>

端点URL具有此简单代码。这很有效。 <?php echo $_POST['params']; ?>

答案 1 :(得分:0)

如果您使用的是ASP .Net MVC 请检查您是否使用正确的过滤器[HttpPost]用于POST请求,默认情况下会将其视为Get请求

[HttpPost]
public JsonResult endpoint()
相关问题