0

我开发了返回 jsonp 对象的 Restful Web 服务。我在使用 Ajax 调用的简单 HTML 页面中使用此 Web 服务。意味着在客户端只有 HTML 页面可以访问这个 Web 服务。客户端不使用服务器。我只是运行这个页面浏览器。问题是任何人都可以访问我已经实现的这个 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');
    }
})
};
4

1 回答 1

0

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

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

或插入身份验证数据:

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

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

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

于 2013-07-18T19:09:03.207 回答