有沒有辦法將一個額外字段傳遞給jqXHR
對象?在這裏我的情況:AJAX將自定義字段傳遞給jqXHR
我返回HttpResponseMessage
像這樣:
response.ReasonPhrase = "someString " + Resources.Messages.NoData;
response.StatusCode = HttpStatusCode.NoContent;
return response;
但也有一些情況下,我需要通過另一個StatusCode = HttpStatusCode.NoContent;
,出於不同的原因:
response.ReasonPhrase = "anotherString " + Resources.Messages.NoMoreData;
response.StatusCode = HttpStatusCode.NoContent;
return response;
因爲消息都是本地化的(Resources.Messages
)到用戶的語言,我需要一個額外的字段來檢查,例如它是否等於"someString "
或"anotherString "
或「....」在AJAX
success
回電:
$.ajax({
type: 'POST',
url: '/api/testing/test',
data: jobject,
contentType: 'application/json',
success: function (data, status, xhr) {
if (status == "nocontent" && xhr.statusText.startsWith("someString")) {
// do something
}
if (status == "nocontent" && xhr.statusText.startsWith("anotherString")) {
// do something
}
error: function (xhr) {
debugger;
if (xhr.responseJSON == 'UnableToParseDateTime') {
// do something
}
}
});
奇怪的是,是,xhr.statusText
不支持xhr.statusText.startsWith()
。因此,對"someString "
或"anotherString "
或「....」進行平等檢查不起作用。
我注意到,在success
回調中,responseText
總是空的。如果我能從服務器中「填充」那個,那就很好。如果不是,我如何爲jqXHR
對象增加一個字段?或者定義一些新的自定義HttpStatusCode
?
你有沒有在asp.net-webapi jqXHR自定義字段的例子?我閱讀文檔是,但不是關於AJAX的所有內容。 – Quoter