Marius Manastireanu Marius Manastireanu - 1 year ago 321
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 Source

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.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download