ユーザー名、パスワード、およびキャプチャを含むサインイン ポップアップを含む 1 つのログイン ページがあります。ajax (戻り値は json ) を使用してフォームを投稿しようとするたびに、次のようなエラーが発生します。
com.opensymphony.xwork2.ognl.OgnlValueStack -
'struts.token.name'
値'[Ljava.lang.String;@53401791'
ognl.OgnlException を持つ式の設定エラー:ソースが null の場合getProperty(null, "token")
と
フォーム トークン B4KX7L4ER1FXK5BRJZJ19QTGG4EGRGME がセッション トークン null と一致しません
ログイン.jsp
<script>
var strutsToken = "<s:property value="#session['struts.tokens.token']" />";
</script>
と body タグの内側
<s:token/>
Signin.jsp (ログイン用ポップアップ)
<script>
var strutsToken = "<s:property value="#session['struts.tokens.token']" />";
</script>
<script>
$(document).ready(function () {
// For making new captcha image
var df = "Captcha?token=" + strutsToken + "&struts.token.name=token";
$("#IMA").attr("src", df); // IMA is id of captcha image
$('#mini').click(function () { // mini is id of submit button
$.post('Auth', {
username: document.getElementById('username').value,
pass: document.getElementById('pass').value,
Captcha: document.getElementById('Captcha').value,
token: strutsToken,
'struts.token.name': "token"
}, function (jsonResponse) {
if (jsonResponse.res == "1") {
console.log('valid');
window.location = "campaign/campaign_dashboard.jsp";
}
else if (jsonResponse.res == "2") {
console.log('valid');
window.location = "Main.jsp";
} else {
$('#result').text(jsonResponse.res);
}
}, 'json');
});
});
</script>
Struts.xml
<interceptor-stack name="myStack">
<interceptor-ref name="authenticationInterceptor" > </interceptor-ref>
<interceptor-ref name="cachingHeadersInterceptor" />
<interceptor-ref name="fileUpload" >
</interceptor-ref>
<interceptor-ref name="token"></interceptor-ref>
<interceptor-ref name="params">
<param name="params.excludeParams">
token,dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,parameters\...*
</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack"/>
トークンがアクションに正しく渡されるのを妨げているのは何ですか?