Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you send a raw strings through a jQuery POST request?

I am trying to POST a raw string via jQuery.ajax()

e.g.,

contact_list=352345

I have

$.ajax({
        beforeSend: function(xhr){
            xhr.setRequestHeader('Content-Type', header);
        }
        },
        url: link,
        type: type,
        processData:false,
        data: data,
        success: function(data){
            console.log(data);
        }
     });

Most of the time I am sending JSON data, so header='application/json'

On the server side, I echo $HTTP_RAW_POST_DATA and see my JSON string just fine.

However, I sometimes want to send normal form data too. But when I set header='application/x-www-form-urlencoded' $HTTP_RAW_POST_DATA is empty.

ProcessData is false, so shouldn't it just pass my string on through?

As a temporary workaround I'm just leaving the header as application/json and ignoring the Content-Type on the server for this particular endpoint.

like image 362
speg Avatar asked Mar 23 '26 08:03

speg


1 Answers

I would rather send a flag to my javascript function to see what sort of input

so your function will look like this

function processIt(request_type,link,type,data) {
if(request_type == 'json')
$.ajax({
    beforeSend: function(xhr){
        xhr.setRequestHeader('Content-Type', header);
    }
    },
    url: link,
    type: type,
    processData:false,
    data: data,
    success: function(data){
        console.log(data);
    }
 });
else 
 $.ajax({
url: link,
data: data,
success: function(data){
    //do something
}
 });
}

But that's if you want to use your function as it is.

like image 199
Jaspreet Chahal Avatar answered Mar 25 '26 20:03

Jaspreet Chahal



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!