Marius Manastireanu Marius Manastireanu - 10 days ago 6
Javascript Question

Failed to execute 'setRequestHeader' on 'XMLHttpRequest' [...] is not a valid HTTP header field value

I am developing an application with AngularJS (client side) and Java (server side) using RESTful services (with Jersey).

In the client I have something like this

$http({
url : "/Something/rest/...",
method : "POST",
headers : {
...
'text' : text
}
});


on the server side my Java method header looks like this

public JSONObject myMethod(@HeaderParam("text") String text [...]) throws JSONException


And I'm getting this error when trying to send a request

Error: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': 'Some text here formatted with \n and \t' is not a valid HTTP header field value.


Is this because of the formatting? Is it because the text is quite long?

What should I change? Please guide me

Answer

Are you sending your 'text' in headers on purpose? This is in general not a place for doing this. For sending content through POST(or GET) you should use 'data' field. So:

$http({
    url : "/Something/rest/...",
    method : "POST",
    data: {
        ...
        'text' : text
    }
});

,and on the server side similar change for getting your data from POST. You don't need and shouldn't mess with headers unless you know what you are doing.

Comments