1

beforeSendjQuery Ajax中的 Function 有什么用?

如何使用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功能,我们需要在服务器端做任何事情吗?

4

1 回答 1

0

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

但是您的需求不同,您希望在 ajax 调用之前对用户进行身份验证,而不是

创建另一个功能,使您的用户已通过身份验证或未响应,假设此功能是checkAuth();

所以用

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

.
.
.
于 2012-06-13T05:53:48.853 回答