无法执行' setRequestHeader' on' XMLHttpRequest' [...]不是有效的HTTP标头字段值

时间:2014-06-20 12:06:33

标签: java javascript angularjs rest post

我正在使用RESTful服务(使用Jersey)使用AngularJS(客户端)和Java(服务器端)开发应用程序。

在客户端我有类似的东西

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

在服务器端,我的Java方法标题如下所示

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

我在尝试发送请求时遇到此错误

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

这是因为格式化吗?是因为文字很长吗?

我应该改变什么?请指导我

2 个答案:

答案 0 :(得分:2)

您是否故意在标题中发送“文字”?这通常不是这样做的地方。 要通过POST(或GET)发送内容,您应该使用“数据”字段。 所以:

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

,在服务器端进行类似的更改,以便从POST获取数据。 除非你知道自己在做什么,否则你不需要也不应该乱用标题。

答案 1 :(得分:1)

我遇到了这个问题。请确保您的代码标题名称中不包含空格。即'designId'无效,因为它的末尾包含空格