代码之家  ›  专栏  ›  技术社区  ›  ParoX

客户端HTTP发布到外部站点

  •  1
  • ParoX  · 技术社区  · 14 年前

    是否有任何web语言允许客户端自己创建到外部站点的HTTP帖子。

    我知道JavaScript通过XMLHttpRequest实现了这一点,但是它不允许跨域发布,除非收件人域希望允许发送域。

    我想将数据发布到一个外部站点(我不控制),并使用客户端浏览器已有的内容(cookies等)对请求进行身份验证。

    这可能吗?我尝试了cURL,但它似乎是一个服务器httppost,而不是一个客户端httppost。


    对我要做的事情有更多的了解:

    我尝试使用用户会话将JSON发布到网站(我说了cookies,但我相信它们是PHP会话,我想我仍然考虑cookies)。

    我可以使用我的个人主页在网页上执行javascript和html(安全性差#2) 即使内容类型是form,JSON代码仍然可以工作(安全性差#3) 根本没有安全检查,只有PHP会话检查。

    形式的想法是美妙的,它的作品。可能还有一个问题是它的JSON。所以发送postdata作为

    foo=%7B%22 测试 123 %22%2C+%22 测试2 %22%3A+%22 456 %22%7天

    {“test”:“123”,“test2”:“456”}

    5 回复  |  直到 14 年前
        1
  •  2
  •   Pekka    14 年前

    你能做的最好的事情就是创建一个 <form> (也许在一个 <iframe>

        2
  •  0
  •   spinon    14 年前

    我认为这显然是不允许的。如果这是允许的,什么可以阻止一个恶意的人从一个人的浏览器发布表单数据到任何数量的网站在一些隐藏的iframe或弹出窗口。

    编辑:正如@Pekka所指出的,我知道您可以使用典型的表单提交将表单提交到远程站点。我指的是使用一些客户端ajax解决方案。抱歉给你添麻烦了。

        3
  •  0
  •   ankitjaininfo    14 年前

    您应该遵循OpenID和其他单点登录系统的工作方式。openID的工作原理是,您的网站将一些令牌发布到openID服务,作为回报,您将获得身份验证结果。参考 How Does it Work? section here

        4
  •  0
  •   Larry K    14 年前

    是的,您可以使用支持跨域调用的特殊闪存库: YUI connection manager

        5
  •  -1
  •   Ian Wetherbee    14 年前

    客户端不能直接发布到外部站点;这违反了基本的跨域安全模型。例外情况是使用JSONP访问javascript。您所描述的内容需要访问另一个网站的用户cookie,这是不可能的,因为浏览器只允许在同一域/路径中访问cookie。

    您需要使用服务器端代理进行跨域请求,但仍然无法访问外部Cookie: http://jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying-with-jquery.html