AJAX と coldfusion を使用してフォームを送信しています。フォームには、js 関数 login() を呼び出すボタンがあります。この関数は、coldfusion コンポーネントのインスタンスを設定し、cfc コンポーネントで loginUser() メソッドを呼び出します。
ファーストネームとラストネームをjavascriptからloginUser関数に渡すと、すべてうまくいきます。loginUser(firstname,lastname) しかし、実際の電子メール アドレスをフォームに渡そうとすると、CF からエラーが発生します。簡単にするために、loginUser("one","two","three") は機能しますが、loginUser("one","two", "three@") は機能せず、CF は次のメッセージを表示します。
CFC /ATCdev/JanuszChudzynski/MobileWeb/ajax.cfc の呼び出しエラー: 見つかりません [詳細を表示するには、URL パラメーターに「cfdebug」を追加してデバッグを有効にしてください]
そこで、質問が 2 つあります。
1 どうすればうまくいくの?
2 使用している場合、CFDebug を追加するにはどうすればよいですか
<cfajaxproxy cfc="ajax" jsclassname="proxy" />
cfc プロキシを設定します。
前もって感謝します!
以下のコードを貼り付けています。
cfc
<cffunction name="loginUser" access = "remote" returntype="string">
<cfargument name="firstname" type="string" required="true" />
<cfargument name="lastname" type="string" required="true" />
<cfargument name="useremail" type="any" required="true" default=""/>
<cfargument name="license" type="string" required="false" />
<cfargument name="workshopid" type="string" required="false" />
<cfreturn "#firstname##lastname##useremail#">
</cffunction>
JS
function validatelogin(){
var check = $("#loginForm").valid();
console.log("check "+check);
if(check)
{
login();
}
}
function login(){
var instance = new proxy();
instance.setCallbackHandler(loginCallback);
var id = $("input[name='workshop']:checked").val();
var firstname = $("#firstname").val();
var lastname = $("#lastname").val();
var email = $("#email").val();
var licensenumber = $("#licensenumber").val();
console.log(id + " " + firstname + " " + lastname + " " + email + " " + licensenumber);
if(id&&firstname&&lastname&&email&&licensenumber){
//instance.loginUser(firstname,lastname,email,licensenumber,id);
console.log(" Email: "+email);
instance.loginUser(firstname,lastname,"jchudzynski@");
// instance.loginU();
}
else{
console.log("Javascript Error. Not all fields are valid.");
}
}
HTML
<form name="loginForm" id="loginForm" action="loginform.cfm">
<fieldset data-role="controlgroup">
<legend>Select your workshop from options below </legend>
<input type="radio" name="workshop" id="workshop1" class="custom" data-mini="true" value="workshop1" checked/>
<label for="workshop1">Workshop 1.</label>
<input type="radio" name="workshop" id="workshop2" class="custom" data-mini="true" value="workshop2"/>
<label for="workshop2">Workshop 2.</label>
</fieldset>
<div data-role="fieldcontain">
<label for="firstname" >First Name:</label>
<input type="text" name="firstname" id="firstname" value="" placeholder="First Name" data-mini="true" class="required" />
</div>
<div data-role="fieldcontain">
<label for="lastname" >Last Name:</label>
<input type="text" name="lastname" id="lastname" value="" placeholder="Last Name" data-mini="true" class="required" />
</div>
<div data-role="fieldcontain">
<label for="email" >Email:</label>
<input type="text" name="email" id="email" value="" placeholder="email" data-mini="true" class="required email" />
</div>
<div data-role="fieldcontain">
<label for="licensenumber" >License Number:</label>
<input type="text" name="licensenumber" id="licensenumber" value="" placeholder="License Number" data-mini="true" class="required" />
</div>
<input type="button" value="Login" onclick="validatelogin()"/>
</form>