无法在“XMLHttpRequest”上执行“setRequestHeader”\[...\] 不是有效的 HTTP 标头字段值

新手上路,请多包涵

我正在使用 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.

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

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

原文由 Marius Manastireanu 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

你是故意在标题中发送你的“文本”吗?这通常不是执行此操作的地方。要通过 POST(或 GET)发送内容,您应该使用“数据”字段。所以:

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

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

原文由 Liberat0r 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

原文由 Santosh Kadam 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题