当前位置:  开发笔记 > 编程语言 > 正文

使用POST请求重定向的好方法?

如何解决《使用POST请求重定向的好方法?》经验,为你挑选了2个好方法。

我需要通过POST请求将用户重定向到外部站点.

我想出的唯一选择是通过JavaScript提交表单.


有任何想法吗?



1> deceze..:

目前还不是很清楚你的意思,所以让我们采取一些场景:

    用户应将表单POST到您自己以外的服务器

    简单,只需将目标指定为表单操作:

    成功提交POST后,应重定向用户

    像往常一样轻松,接受和处理POST数据,然后使用302303重定向标头进行响应.

    用户应将数据POST到您的服务器,并在验证后,您希望将该数据POST到另一台服务器

    有点棘手,但有三种选择:

    您的服务器接受POST数据,当用户等待响应时,您建立与另一个服务器的连接,发布数据,接收响应,然后向用户返回答案.

    您使用307重定向进行回答,这意味着用户应在另一个地址尝试相同的请求.从理论上讲,它意味着浏览器应该将相同的数据POST到另一台服务器.我不太确定这是多么受支持,但任何了解HTTP1.1的浏览器都应该能够做到这一点.AFAIA在实践中经常没有使用它.
    PS:规范说,307 POST重定向至少需要用户确认.唉,显然没有浏览器坚持这里的规范.IE只是重复请求(因此它适用于您的目的),但Firefox,Safari和Opera似乎丢弃了POST数据.因此,遗憾的是,这种技术是不可靠的.

    使用技术#1与隐藏表单字段相结合,在其间添加一个步骤.

请参阅此处以获取所有HTTP重定向选项的列表:http://en.wikipedia.org/wiki/Http_status_codes#3xx_Redirection



2> BalusC..:

只需将HTML表单的操作URL设置到特定的外部站点即可。

这是一个SSCCE,只需复制“ 粘贴 ”即可运行它:



    
        SO question 2604530
    
    
        
            
            
        
    

您会看到Stackoverflow具有良好的CSRF保护;)

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有