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

31,186

Solution 1

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.

Solution 2

I had faced this problem. Please make sure that in your code header name doesn't contain space. i.e. 'designId ' is invalid, as it contain space at end

Share:
31,186
Marius Manastireanu
Author by

Marius Manastireanu

Updated on October 17, 2020

Comments

  • Marius Manastireanu
    Marius Manastireanu over 3 years

    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