2017-05-22 6 views
0

APIエンドポイント(onClick)にオブジェクトの配列を投稿しようとしていますが、400 Bad Requestエラーが発生し続けます。AJAXエンドポイントにオブジェクトの配列を投稿する

私がここで間違っていることを完全にはわかっていないし、この問題についていくつかの援助を期待しています。次のように

私のコードは次のとおりです。

$('#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); 
      } 
      }); 
     }); 

任意の助けいただければ幸いです。

ありがとうございました

答えて

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']; ?>

+0

私はjQueryの前に、私のフッターに配置してきたように私のsite.jsファイル。私はそれが問題だとは思わない。 @ milan-chheda – KD1

+0

JQueryがロードされている場合、コンソールでチェックインできますか?また、問題をよりよく理解するために、HTMLコードを親切に共有してください。あなたは私の上記のコードを試すことができます、それは400の悪い要求をスローしません。 –

+0

私はチェックし、jQueryがロードされています。 htmlコードは 'test-post'というidのボタンで構成されています。あなたのスニペットを実行すると、次のエラーが返されます: 'Error is:error' – KD1

0

あなたはASP。ネットMVC を使用している場合は、それが考慮されますデフォルトでPOSTリクエストのための正しいフィルタを使用[HttpPost]を使用しているか確認してくださいそのGet要求

[HttpPost] 
public JsonResult endpoint() 
+0

私はASP .Netを使用していません。ちょうどjQuery AJAXを使って投稿をしています – KD1

関連する問題