2014-06-20 27 views
2

我正在開發一個使用RESTful服務(使用Jersey)的AngularJS(客戶端)和Java(服務器端) 。未能在'XMLHttpRequest'[...]上執行'setRequestHeader'[...]不是有效的HTTP標頭字段值

在客戶端我有這樣的事情

$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. 

這是因爲格式化?是因爲文字很長嗎?

我應該改變什麼?請引導我

回答

1

您是否在頭文件中發送了「文本」?這通常不是做這件事的地方。 要通過POST(或GET)發送內容,您應該使用'數據'字段。 所以:

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

,並從POST讓你的數據在服務器端類似的變化。 除非你知道你在做什麼,否則你不需要也不應該弄亂標題。

+0

如果有人在使用第三方庫(如Restangular),而我們無法控制這個庫,那麼在使用描述的格式化OP時如何避免「不是有效的HTTP頭字段值」? – Vixxd

相關問題