lok*_*oki 0 ajax jquery sapui5
您好我在jQuery.ajax调用下使用,在我的onBeforeRendering()方法中:
onBeforeRendering: function() {
jQuery.ajax({
url: "/prototype/OnlineQuestionnaire/getQuestionsAndResponseChoices.xsjs?questionnaireResponseId=" + escape(
questionnaireResponseId) + "&password=" + escape(
password),
// url: "/prototype/OnlineQuestionnaire/submitAndCreateQuestionnaire.xsjs",
method: "GET",
dataType: "json",
complete: this.onSuccess,
error: this.onErrorCall
});
console.log(output); //Gives undefined
}
onSuccess: function(jqXHR, textStatus) {
output = jqXHR.responseText;
output = JSON.parse(output);
console.log(output) //Gives me my JSON object from my response.
return;
},
Run Code Online (Sandbox Code Playgroud)
为什么console.log(output)我的onBeforeRendering函数中没有给我定义?我想在我的onBeforeRendering中获取输出结果,以便我可以在渲染之前执行一些验证.在我得到一个解决方法的那一刻,我在收到输出后在onSuccess函数中执行我的验证.但我希望在onBeforeRendering()中调用ajax后执行此操作.但我尝试了console.log(输出)未定义.如何从我的ajax调用的完整属性访问输出?
几句话
escape().此功能已弃用年龄前.它已经破碎了,没有任何理由可以在任何地方使用它.忘了它存在.encodeURIComponent().Content-Type: application/json.$.get()而是可以使用而不是更详细的$.ajax().jqXHR.有了这个,我们可以将您的代码减少为更易读的形式:
onBeforeRendering: function () {
jQuery.get("/prototype/OnlineQuestionnaire/getQuestionsAndResponseChoices.xsjs", {
questionnaireResponseId: questionnaireResponseId
password: password
}).done(function (data) {
console.log(data);
});
}
Run Code Online (Sandbox Code Playgroud)