# Response "Error 400 - Bad Request"

**URL:** <https://forums.knack.com/t/response-error-400-bad-request/10019>\
**Category:** API & Custom Code\
**Created:** [December 29, 2017, 9:08pm UTC](https://forums.knack.com/t/response-error-400-bad-request/10019 "2017-12-29T21:08:56Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![JeffChrist19623](https://avatars.discourse-cdn.com/v4/letter/j/3da27b/32.png) [@JeffChrist19623](https://forums.knack.com/u/JeffChrist19623)\
**Post date:** [December 29, 2017, 9:08pm UTC](https://forums.knack.com/t/response-error-400-bad-request/10019/1 "2017-12-29T21:08:56Z")

</div>

I'm using a couple of ajax calls to gather data from a view (in my case view 200) and then place that information into two objects (in my case object 38 and object 15).

The first POST works fine.&nbsp; The data arrives and the response is successful.

The second POST fails with an Error 400 - Bad Request.&nbsp; It appears as though I lose my data when I go to do the second ajax call.&nbsp; Here is the code I'm using.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

// Zone4 Details Create New COMMON record when button pushed - Start of Code  
// on page load  
$(document).on('knack-view-render.view\_200', function(event, view) {

// Add a buttons for adding Player, Guardian 1 and Guardian 2  
$('\<button id="Player""\>Insert Player\</button\>').insertBefore('.field\_377');  
$('\<button id="Guard1""\>Insert Guardian 1\</button\>').insertBefore('.field\_366');  
$('\<button id="Guard2""\>Insert Guardian 2\</button\>').insertBefore('.field\_371');

// Setup variables to collect Zone4 data  
var zone4\_player = Knack.models['view\_200'].toJSON();  
var zone4\_guard1 = Knack.models['view\_200'].toJSON();  
var zone4\_guard2 = Knack.models['view\_200'].toJSON();

// Gather data for later use in ajax calls.  
var player\_first\_name = zone4\_player.field\_377\_raw.first;  
var player\_last\_name = zone4\_player.field\_377\_raw.last;  
var player\_home = zone4\_player.field\_379\_raw.number;  
var player\_cell = 'NOT AVAILABLE';  
var player\_email = zone4\_player.field\_380\_raw.email;   
var player\_street = zone4\_player.field\_378\_raw.street;  
var player\_street2 = zone4\_player.field\_378\_raw.street2;  
var player\_city = zone4\_player.field\_378\_raw.city;  
var player\_prov = zone4\_player.field\_378\_raw.state;  
var player\_postal = zone4\_player.field\_378\_raw.zip;  
var player\_medconcerns = zone4\_player.field\_385\_raw;  
var player\_healthnum = zone4\_player.field\_384\_raw;  
var player\_communitynum = zone4\_player.field\_375\_raw;  
var player\_dob = zone4\_player.field\_382\_raw.date;  
var player\_gender = zone4\_player.field\_741\_raw;

// event for the buttons when clicked  
// Player button  
$('#Player').click(function() {  
 alert ('Adding Player to Common Database');  
 Knack.showSpinner();   
   
// set data variable for use in the ajax insert later  
var commonplayerdata = {  
 field\_590: {  
 first: player\_first\_name+'TEST',  
 last: player\_last\_name+'TEST'  
 },  
 field\_597: 'Player',  
 field\_591: {  
 street: player\_street,  
 street2: player\_street2,  
 city: player\_city,  
 state: player\_prov,  
 zip: player\_postal  
 },  
 field\_593: player\_home,  
 field\_594: player\_email,  
 field\_600: '5a3172ba279dac07130e5e9c' //High Park  
 };

// use an ajax call to insert the new common record into the common object (object 38)   
$.ajax({  
 url: '[https://api.knackhq.com/v1/objects/object\_38/records/](https://api.knackhq.com/v1/objects/object_38/records/)',  
 type: 'POST',  
 headers: {  
 'X-Knack-Application-ID': 'APP ID',  
 'X-Knack-REST-API-Key': 'API KEY'  
 },  
 data: commonplayerdata,  
 // use data in success function to gather response from Knack  
 success: function(object38successdata)  
 {  
 // pop up a message box showing successful data insert and hide the Knack wait spinner  
 alert ("Object 38 Success: " + JSON.stringify(object38successdata));  
 alert ("Commonplayerdata: " + JSON.stringify(commonplayerdata));  
 // convert response data into variables  
 var ob38postrecid = object38successdata.id;  
 alert ("Object 38 Post Record ID: "+ ob38postrecid);

// Gather data to use in next insert into player users object (object 15)  
 // set data variable for use in the ajax insert later  
 var playeruserdata = {  
 field\_166: {  
 first: player\_first\_name+'TEST',  
 last: player\_last\_name+'TEST'  
 },  
 field\_167: player\_email,  
 field\_168: 'Password',  
 field\_169: 'Active',  
 field\_453: player\_gender,  
 field\_454: player\_communitynum,  
 field\_456: player\_healthnum,  
 field\_457: player\_medconcerns,   
 field\_464: '2018',  
 field\_469: player\_dob,  
 field\_596: ob38postrecid  
 };  
 alert("Adding player to player user table (Object 15).");  
 alert("playeruserdata : " + JSON.stringify(playeruserdata));  
 alert ("Object 38 Post Record ID: "+ ob38postrecid);  
 $.ajax({  
 url: '[https://api.knackhq.com/v1/objects/object\_15/records/](https://api.knackhq.com/v1/objects/object_15/records/)',  
 type: 'POST',  
 headers: {  
 'X-Knack-Application-ID': 'APP ID',  
 'X-Knack-REST-API-Key': 'API KEY'  
 },  
 data: playeruserdata,  
 success: function(object15successdata)  
 {  
 // pop up a message box showing successful data insert and hide the Knack wait spinner  
 alert ("Object 15 Success: " + JSON.stringify(object15successdata));  
 // convert response data into variables  
 var ob15postrecid = object15successdata.id;  
 alert ("Object 15 Post Record ID: "+ ob15postrecid);  
 },  
 error: function(object15errordata)  
 {  
 // pop up a message box if the post failed and hide the Knack wait spinner  
 alert("Object 15 Error: " + JSON.stringify(object15errordata));  
 alert("playeruserdata: " + JSON.stringify(playeruserdata));   
 alert ("Object 38 Post Record ID: "+ object38successdata.id);  
 Knack.hideSpinner();  
 }  
 });  
 //We are now back inside the success loop from Object 38's ajax call.  
 Knack.hideSpinner();  
 },  
 error: function(object38errordata)  
 {  
 // pop up a message box if the post failed and hide the Knack wait spinner  
 alert("Object 38 Error: " + JSON.stringify(object38errordata));   
 Knack.hideSpinner();  
 }  
// Close line 226  
 });

// Close line 199  
 });

---

<div class="post-metadata">

**Author:** ![Sunny\_Singla](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.knack.com/sunny_singla/32/1007_2.png) [@Sunny\_Singla](https://forums.knack.com/u/Sunny_Singla)\
**Post date:** [December 30, 2017, 8:53am UTC](https://forums.knack.com/t/response-error-400-bad-request/10019/2 "2017-12-30T08:53:01Z")

</div>

Hmm understand Jeff ..

---

<div class="post-metadata">

**Author:** ![JeffChrist19623](https://avatars.discourse-cdn.com/v4/letter/j/3da27b/32.png) [@JeffChrist19623](https://forums.knack.com/u/JeffChrist19623)\
**Post date:** [December 30, 2017, 8:07am UTC](https://forums.knack.com/t/response-error-400-bad-request/10019/3 "2017-12-30T08:07:17Z")

</div>

I figured it out.&nbsp; It was because I was trying to insert text into an eMail field.&nbsp; As soon as I added&nbsp; &nbsp;.email&nbsp; to the formatting code it worked out fine.

&nbsp;

Here is the updated code.

&nbsp;

var playeruserdata = {  
 field\_166: {  
 first: player\_first\_name+'TEST',  
 last: player\_last\_name+'TEST'  
 }, // Name  
 field\_504: '5a3172ba279dac07130e5e9c', // Community Connection  
 field\_453: player\_gender, //Gender  
 field\_167: player\_email.email, // eMail  
 field\_168: "SoftballPassword", // Temporary Password  
 field\_169: "Active", // User Status  
 filed\_170: "Player", // User Roles  
 field\_454: player\_communitynum, // Community League Number  
 field\_456: player\_healthnum, // Health Number  
 field\_457: player\_medconcerns, // Medical Concerns   
 field\_464: '2018', // Registration Year Hard Coded  
 field\_742: player\_dob, // Date of Birth  
 field\_596: ob38postrecid // Common Connection  
 };

---

<div class="post-metadata">

**Author:** ![Sunny\_Singla](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.knack.com/sunny_singla/32/1007_2.png) [@Sunny\_Singla](https://forums.knack.com/u/Sunny_Singla)\
**Post date:** [December 29, 2017, 11:55pm UTC](https://forums.knack.com/t/response-error-400-bad-request/10019/4 "2017-12-29T23:55:06Z")

</div>

field\_168: 'Password',

---

<div class="post-metadata">

**Author:** ![Sunny\_Singla](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.knack.com/sunny_singla/32/1007_2.png) [@Sunny\_Singla](https://forums.knack.com/u/Sunny_Singla)\
**Post date:** [December 29, 2017, 11:53pm UTC](https://forums.knack.com/t/response-error-400-bad-request/10019/5 "2017-12-29T23:53:24Z")

</div>

Hello Jeff

I think it's password issue may be you set some password validations.

Can you try this using exact value of password with meet requirements . Like if you set 1 numeric then add number etc .

And can you share your post data string ?

Thanks   
Sunny Singla

---

<div class="post-metadata">

**Author:** ![JeffChrist19623](https://avatars.discourse-cdn.com/v4/letter/j/3da27b/32.png) [@JeffChrist19623](https://forums.knack.com/u/JeffChrist19623)\
**Post date:** [December 29, 2017, 9:10pm UTC](https://forums.knack.com/t/response-error-400-bad-request/10019/6 "2017-12-29T21:10:11Z")

</div>

Sent that too fast... does anyone see anything wrong with my java?&nbsp; Anyone have any ideas why this code might work on the first object (38) but fail on the second object (15)?

&nbsp;

Please help!

THANK YOU IN ADVANCE!

-Jeff
