0

jsonp オブジェクトを返す Restful Web サービスを開発しました。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');
    }
})
};
4

1 に答える 1

0

ajax リクエストを使用すると、認証ヘッダーを送信できます

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

または認証データを次のように挿入します。

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

ただし、Web サービスで自分で認証を処理する必要があります。または、var payLoadData を使用して、Web サービスで確認するカスタム認証データを追加することもできます。

他の人に認証パケットを傍受されたくない場合は、https で接続することも検討する必要があります。

于 2013-07-18T19:09:03.207 に答える