什么是在(Jquery)Ajax中使用beforeSend函数

时间:2012-06-12 09:09:14

标签: rest jquery jersey

jQuery Ajax中beforeSend函数有什么用?

如何使用jQuery函数?

我在服务器端使用jQuery 1.6.0和使用Jersey API(Restful Web服务)。

$.ajax({

    type: "GET",
    url:ajax_url,
    dataType: "json",
    contentType: "application/json",                    
    async: false,
    beforeSend: function (xhr){ 
xhr.setRequestHeader('Authorization', "Basic "+ btoa(username + ':' + password)); 
    },
    success:function(data){
        alert(data.groups);
    },
    error:function(xhr,err){
        console.log("readyState:"+xhr.readyState+"\nstatus: "+xhr.status)
        alert(xhr.responseText)
        alert("Service is not Available , Try it after Some time");
    }
});

Java代码:

@GET

@Produces(MediaType.APPLICATION_JSON)

public String authCheck(){

return "({"groups": "success"})";

}

每当我发送身份验证时,我都会收到成功回复。

如何使用beforeSend函数,我们是否需要在服务器端做任何事情?

1 个答案:

答案 0 :(得分:0)

通常beforeSend()用于在实际发送AJAX请求之前做一些事情,比如设置自定义标题等等......

但是您需要在ajax调用之前对用户进行身份验证,而不是

创建另一个函数,该函数可以为用户提供身份验证或不响应 假设此函数为checkAuth();

所以使用

type: "GET",
    url:ajax_url,
    dataType: "json",
    contentType: "application/json",                    
    async: false,
    beforeSend:checkAuth,

.
.
.