我有一个函数,它期望ajax调用的结果并将其分配给变量,结果成功分配给变量,但我的问题是我如何提取它?
这是我的代码,我尝试使用$.each
来变量,但它未定义
<script type="text/javascript">
$(function () {
var branches = GetBranches();
console.log(branches);
//$.each(branches.d, function (key, val) {
// console.log(val.BranchCode);
//})
function GetBranches() {
return $.ajax({
type: 'POST',
url: 'testWS.asmx/GetBranches',
contentType: 'application/json; charset=utf-8',
dataType: 'JSON'
});
}
});
</script>
以下是console.log(branches)
我想从responseJSON中检索/提取数据。怎么可能这样做?
答案 0 :(得分:1)
$.ajax()
返回jQuery XMLHttpRequest(jqXHR)
对象。
jQuery 1.5中$ .ajax()返回的jqXHR对象实现了 Promise接口,为它们提供所有属性,方法和 Promise的行为(有关更多信息,请参阅Deferred对象)。 这些方法采用一个或多个函数参数 $ .ajax()请求终止。这允许您分配多个 单个请求上的回调,甚至在回调之后分配回调 请求可能已经完成。 (如果请求已经完成,那么 立即触发回调。)jqXHR的可用Promise方法 对象包括:
- jqXHR.done(function(data,textStatus,jqXHR){});
- jqXHR.fail(function(jqXHR,textStatus,errorThrown){});
- jqXHR.always(function(data | jqXHR,textStatus,jqXHR | errorThrown){});
- jqXHR.then(function(data,textStatus,jqXHR){},function(jqXHR,textStatus,errorThrown){});
醇>
所以,
$(function () {
var branches = GetBranches(); // return you jqXHR Object.
brances.done(function (data, textStatus, jqXHR) { // assign callback function when your AJAX request completes.
console.log(data); // here is data you are looking for
});
function GetBranches() {
return $.ajax({
type: 'POST',
url: 'testWS.asmx/GetBranches',
contentType: 'application/json; charset=utf-8',
dataType: 'JSON'
});
}
});
答案 1 :(得分:1)
试试这个 -
function GetBranches() {
$.ajax({
type: 'POST',
url: 'testWS.asmx/GetBranches',
contentType: 'application/json; charset=utf-8',
dataType: 'JSON',
success: function(response) {
return response;
}
});
}
答案 2 :(得分:0)
您可以使用AJAX成功
<script type="text/javascript">
$(function () {
var branches = GetBranches();
console.log(branches);
function GetBranches() {
return $.ajax({
type: 'POST',
url: 'testWS.asmx/GetBranches',
contentType: 'application/json; charset=utf-8',
dataType: 'JSON',
success:function(data){
// Here you will get the data returned from response
}
});
}
});
</script>