I have an ajax post request that needs to send some data in the format of array[integer] without parameters or keys. Unfortunately the browser hangs on request every time I try. I have had success in postman and in swagger but I can't figure out the data format required to just send this keyless array.
Here is my request:
$.ajax({
type: "POST",
url: "/endpoint?code=" + data,
data: [1],
success: function(response) {
console.log(response);
}.bind(this),
error: function(xhr, status, err) {
console.log(status + " " + err);
}.bind(this)
});
In my Swagger docs the following works
curl -X POST --header "Content-Type: application/json" --header "Accept: application/json" -d "[1]" "http://url/endpoint?code=testing"
In postman, it looks like the form data posts the array as a key without a value. I have been able to implement this in the browser but still no luck.
Any help would be appreciated, It seems like a simple answered question but I can't seem to find any solutions.
Try stringfying your data. Send "[1]"
Call JSON.stringify
, and provide a contentType
option to specify that header.
$.ajax({
type: "POST",
url: "/endpoint?code=" + data,
data: JSON.stringify([1]),
contentType: 'application/json',
dataType: 'json',
success: function(response) {
console.log(response);
}.bind(this),
error: function(xhr, status, err) {
console.log(status + " " + err);
}.bind(this)
});
BTW, instead of using .bind(this)
on each callback function, you can use the option context: this
to pass it automatically.