0
在發送到UTF8使用REST服務器的AJAX請求時任一部分,無視不屬於任何部分英文字符REST無視不是英文字符,接收UTF8
我使用JAVA與REST上服務器端和客戶端以UTF8發送包含希伯來詞的Ajax請求。
Ajax請求:
var clientNumber = '12344432432';
var userID = '321321321';
var someHebrewWord = ...;
var someEnglishWord = ....;
var servletUrl = '/Management/services/manager/' + clientNumber + '/' + userID + '/' + someEnglishWord + '/' someHebrewWord;
alert('Sending this :' + servletUrl);
$.ajax({
url: servletUrl,
type: 'POST',
cache: false,
data: { },
success: function(data){
alert('Return value is:' + data);
window.location = "./replyPage.html";
}
, error: function(jqXHR, textStatus, err){
alert('text status '+textStatus+', err '+err + " " + JSON.stringify(jqXHR));
}
});
在服務器端,我使用REST:
@Produces({ "application/json" })
@Path("/manager")
public class Management {
@POST
@Path("{clientNumber }/{userID }/{someEnglishWord}/{someHebrewWord}")
@Produces("application/json")
public boolean insert(@PathParam("clientNumber") String clientNumber, @PathParam("userID") String userID,
@PathParam("someEnglishWord") String someEnglishWord, @PathParam("someHebrewWord") String someHebrewWord)
{
// do some stuff
}
@POST
@Path("{clientNumber }/{userID }/{someEnglishWord}")
@Produces("application/json")
public boolean updateSomething(@PathParam("clientNumber") String clientNumber, @PathParam("userID") String userID , @PathParam("someEnglishWord") String someEnglishWord)
{
// do other stuff
}
// more code
}
所以,在發送AJAX請求時,updateSomething()
被調用,而不是insert()
, 甚至儘管我發送4個字段,而不是3個!
這是什麼原因導致的?我該如何解決?
非常感謝
那麼當您收到以下文字時,您會怎麼做?「我想自我介紹一下,附上一份我的簡歷。」這不符合「英語」的標準嗎?我的觀點是,不存在英語與非英語字符之類的東西。英語借用多種語言,並且您可能會遇到有效的英語句子中的「非英語」字符。 –
@JimGarrison:我的意思是如果我發送而不是'我想介紹一下自己。附件是我résumé'的副本,這樣的:'שלוםאנירוצהלהציגאתעצמיומסמךקורותהחייםשלימצורף',那麼這將被調用的代碼是'updateSomething'。 – ron