ログインWebサービスを使用してユーザーを検証しています。
これらは、POST メソッドでデータのみを受け入れるように設計された Spring 3.0 REST Web サービスです。
GET を使用して Web サービスにデータを送信できます。
しかし、Web サービスの実装により、POST メソッドを使用してデータを送信する必要があります。
POST で jquery ajax リクエストを使用すると、403 アクセス禁止エラーが発生します。
以下は、GET リクエストの実際の例です。
CORS サポートを有効にするために、Tomcat の CORS フィルターを使用しています。
function callservice()
{
jQuery.support.cors = true;
var mobNo = document.getElementById('mobileNo').value;
var acctNo = document.getElementById('accountNo').value;
var custNo = document.getElementById('customerId').value;
url = url+mobNo+"/"+acctNo+"/"+custNo;
$.getJSON(url,
function(data)
{
if (data.authenticated==true)
{
alert("data "+data);
}
});
}
しかし、次のコードを使用すると、403 エラーが発生します。
function callservice()
{
jQuery.support.cors = true;
var mobNo = "123123123";
var acctNo = "123123123";
var custNo = "123123123";
var url = "http://localhost/mobile-services/rest/user/";
var dataVal = {};
dataVal["mobileNo"] = mobNo;
dataVal["accountNo"] = acctNo;
dataVal["customerId"] = custNo;
var forminput = JSON.stringify(dataVal);
$.ajax({
url: url,
type: "POST",
data:forminput,
datatype:"jsonp",
crossDomain: true,
contentType: "application/json",
beforeSend: function () { },
headers :
{
"Content-Type" : "application/json",
"Accept" : "application/json",
"Origin" : "http://localhost/",
"Access-Control-Allow-Origin" : "*"
},
success: function (data)
{
if (data.authenticated==true)
{
window.location.replace("http://localhost:8080/mobile-services/selected_services.jsp?userId="+data.id);
}
},
error: function (XMLHttpRequest, textStatus, errorThrown)
{
try
{
alert(JSON.stringify(XMLHttpRequest) + "\n" + textStatus + "\n" + errorThrown);
}
catch (ex) { alert("Exception occured.. "); }
finally { }
}
});
}
提案してください。