安全的jsonp ajax调用

时间:2013-07-17 11:53:13

标签: java web-services rest jsonp

我开发了Restful Web-Service,它返回jsonp对象。我在使用Ajax调用的简单HTML页面中使用此Web服务。客户端的方法只有访问此Web服务的HTML页面。客户端没有使用服务器。我刚刚运行此页面浏览器。问题是任何人都可以访问我已经实现的Web服务。我希望通过某种身份验证使其安全。我已经阅读了发送令牌以及请求的解决方案,但在客户端我没有任何服务器或任何东西,它只是一个简单的HTML页面。请帮我解决一些安全Web服务的问题。

调用webseive的JavaScipt函数:

function calculatePremium(investmentAmount,month, premium)
{
var url = "http://192.1.200.107:8080/webresources/avestWebService/getPremium";
var payLoadData = {
    amount: $("#"+investmentAmount).val(),
    period: $("#"+month).val()
};

$.ajax({
    type: "GET",
    url: url,
    cache:false,             
    crossDomain:true,
    data: payLoadData,
    dataType: "jsonp",
    success: function (data,textStatus,jqXHR) {
        $("#"+premium).val(data.premium);
    },
    error: function (jqXHR,textStatus,errorThrown) {
        alert('Error occured');
    }
})
};

1 个答案:

答案 0 :(得分:0)

使用ajax请求,您可以发送身份验证标头

beforeSend: function(xhr) {
    xhr.setRequestHeader("Authorization", "Basic " + "username:password");
},

或插入身份验证数据:

$.ajax({
    type: "GET",
    username: "user",
    password: "password",
    ....
}

但您必须自己在Web服务中处理身份验证。 或者您可以使用var payLoadData添加一些您使用Web服务检查的自定义身份验证数据。

如果您不希望其他人拦截您的身份验证数据包,您还应考虑在https下建立连接