我将发布两个快速示例,我想知道这些是怎样的
$.post('/path/to/file', {param1: 'value1'}, function(data, textStatus, xhr) {
/*optional stuff to do after success */
});
在post函数中有第三个参数,它是一个函数,但是data,textStatus和xhr可以在函数内使用,如何调用?即使我一直使用它们,我觉得我仍然不理解“用法”或整个事情,我的意思是,第三个参数如何返回或使内部函数的3个参数可用?
答案 0 :(得分:2)
$.post
(以及$.get
,$.ajax
等)是jQuery在XMLHTTPRequest API之上的“糖”。第三个参数,即函数,称为回调,并在请求完成后以请求响应作为其参数调用。简化版本如下所示:
function post(endpoint, params, callback) {
var http = new XMLHttpRequest();
var url = endpoint;
var params = params;
http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.onreadystatechange = function() {
if (http.readyState == 4 && http.status == 200) {
// The callback is called with the text (and other parameters)
// passed in as arguments
// jQuery also returns textStatus, and the jQXHR object
// https://api.jquery.com/jquery.post/
callback(http.responseText));
}
}
http.send(params);
}
它的使用方式与$.post
完全相同。
post('http://example.com/post', {}, function (text) {
console.log(text);
});
答案 1 :(得分:1)
您正在将字符串(路径),对象(选项字典)和lambda函数传递给jQuery.post。然后jQuery使用路径和选项代表您执行POST请求,当它完成时,使用3个参数调用该函数。
这是一个回调。