1
我現在有一個指向自身,但更精確地形式,以錯誤的內部錨:自提交表單重定向仍然包含內部錨
<form action="#errors" method="post">
...
</method>
當提交表單時,我會驗證輸入數據和如果存在錯誤,則將它們輸出到屏幕上(位於內部錨點內)。如果數據是有效的,我會重定向到一個確認頁面:
<cflocation url="confirm.cfm" addToken="no" />
我的問題是,重定向的頁面仍然包含引用到內部錨。該URL看起來是這樣的:
http://mydomain.com/confirm.cfm#errors
我與其他語言的嘗試這樣做,能,而不必重定向後剩餘的錨複製此功能。
編輯#1
這是CF10時,Windows 2008 R2。
窗體頁:
<cfif not structIsEmpty(form)>
<cfinvoke component="#request.cfcPath#.val" method="init" returnvariable="valObj"></cfinvoke>
<cfset valObj.validateGame()>
<cfif valObj.hasErrors()>
<cfoutput>#valObj.showErrors()#</cfoutput>
<cfelse>
<cfif form.editYN eq 0>
<cfinclude template="actInsert.cfm">
<cfelse>
<cfinclude template="actUpdate.cfm">
</cfif>
</cfif>
</cfif>
actUpdate.cfm
<!--- Redirect --->
<cfquery>...</cfquery>
...
<cflocation url="default.cfm?fuseaction=Confirm.gameUpdated" addtoken="No">
actInsert.cfm
<!--- Redirect --->
<cfquery>...</cfquery>
...
<cflocation url="default.cfm?fuseaction=Confirm.gameAdded" addtoken="No">
編輯#2
這裏的測試用例:
<!DOCTYPE html>
<head>
<title></title>
</head>
<body>
<cfif StructKeyExists(form, "doRedirect")>
<cfif form.doRedirect eq 1>
<cflocation url="http://stackoverflow.com" addtoken="false">
<cfelse>
<div id="errors">
<ul>
<li>Some error could have occured here.</li>
</ul>
</div>
</cfif>
</cfif>
<form action="#errors" method="post">
<div><label for="doRedirect">Do Redirect?</label><select name="doRedirect" id="doRedirect"><option value="0">No</option><option value="1">Yes</option></select></div>
<div><input type="submit" value="Go"/></div>
</form>
</body>
</html>
你確定它進入您的'cflocation'代碼? –
我不知道如果confirm.cfm有JavaScript,試圖去#errors –
@MattBusche是的,因爲這兩個頁面是獨一無二的,顯示證實它。 – TekiusFanatikus