我可以使用cflocation和/或cfhttp模仿带有表单发布的javascript重定向吗?

时间:2018-06-22 19:33:31

标签: coldfusion cfhttp cflocation

我有一个项目,要求我将登录数据发布到另一个域。提交表单后,将在浏览器中设置一个cookie,并重定向用户。

我已经可以使用javascript完成此操作,如下所示:

<cfsavecontent variable="headOUT">
     <script type="text/javascript">
          function redirectPost(url, data) {
               var form = document.createElement('form');
               document.body.appendChild(form);
               form.method = 'post';
               form.action = url;
               for (var name in data) {
                    var input = document.createElement('input');
                    input.type = 'hidden';
                    input.name = name;
                    input.value = data[name];
                    form.appendChild(input);
               }
               form.submit();
          }
     </script>
</cfsavecontent>
<cfhtmlhead text="#headOUT#">

<cfset htmlOUT = ''>
<cfset htmlOUT = htmlOUT & '<script type="text/javascript">'>
<cfset htmlOUT = htmlOUT & "redirectPost('#remote_url#', { authen_token: '#encryptedString#' });">
<cfset htmlOUT = htmlOUT & '</script>'>
<cfoutput>#htmlOUT#</cfoutput>

如果我使用cfhttp:

<cfhttp method="Post" url="#remote_url#" RESOLVEURL="Yes">
     <cfhttpparam type="Formfield" name="authen_token" value="#encryptedString#">
</cfhttp>

响应不包括cookie,它只是具有元重定向的HTML,就像我从其页面登录一样。但是没有Cookie,我就无法通过身份验证。

是否可以使用cfhttp和/或cflocation进行重定向和发布,或者javascript是最佳解决方案?

0 个答案:

没有答案