Thực hiện getOffers
trả về jqXHR getData
trả về như bên dưới -
var myApp = (function () {
var Var1 = [];
var getData = function (sendData) {
return $.ajax({
type: "POST",
url: URL,
data: sendData,
datatype: "json",
success: function (results) {}
});
};
var getOffers = function (sendData) {
// return the jqXHR returned by getData
return getData(sendData);
};
return {
getOffers: getOffers
};
})();
jqXHR
đối tượng được trả về bởi $.ajax({})
là một Promise
-Khi bạn nhận được phản hồi thành công cho yêu cầu Ajax - bạn có thể đính kèm một trình xử lý thành công như thế này - bên ngoài yêu cầu ajax của bạn
myApp.getOffers({
'showData': 1,
'myLocation': "Location1",
'clientID': "Client1"
}).done(function (data, textStatus, jqXHR) {
// work with DOM here
});
Thông tin thêm về Jquery Deferreds / Promises tại đây -
Ngoài ra, bạn đã tạo getData
, getOffers
toàn cầu do thiếu var
phía trước trong khi khai báo.
Theo nhận xét của bạn về việc sử dụng POST
thay vì GET
, quy tắc chung là - GET
là để truy xuất dữ liệu, POST để lưu - chỉ vì bạn sử dụng POST
điều đó không có nghĩa là một số người không thể đánh hơi dữ liệu bạn đang gửi, nó chỉ là một phần của phần thân yêu cầu thay vì URL yêu cầu. Nếu bạn cho rằng dữ liệu bạn đang gửi thực sự nhạy cảm, bạn nên xem xét việc bật SSL(HTTPS)
cho ứng dụng của bạn.