【问题标题】:Making a client-side HTTP GET request with cookies in Javascript or any other language使用 Javascript 或任何其他语言的 cookie 发出客户端 HTTP GET 请求
【发布时间】:2013-12-13 10:18:32
【问题描述】:

在我正在开发的网页中(使用 asp.net,但我认为这与这个问题无关)我有必要向外部网站发出 HTTP GET 请求。

我遇到的两个问题是:

1) 请求必须在客户端发出,因为我发出请求的网站限制只能访问某些 IP 地址。我的客户端将在可接受的 IP 范围内,但我的服务器不会,因此客户端必须使用某种客户端脚本(Javascript 或其他,欢迎提出建议)发出请求

2) 请求必须包含一个我必须设置的具有特定值的外部站点的 cookie,因此发出请求的方法/库/脚本必须允许我设置一个 cookie

我在 SO 和其他网站上进行了搜索,但运气不佳,我发现的几个示例似乎不起作用。任何客户端语言的任何想法都非常感谢。

【问题讨论】:

  • @newfurniturey cookie 对于域是固定的,因为他正在进行跨域调用,因此不会发送 cookie,因为它不是域的。看到这个问题(我不知道答案是否有帮助):stackoverflow.com/questions/16851896/…
  • Java 小程序、Flash 或 ActiveX 控件可能使这成为可能,但浏览器支持有限且安全警告令人讨厌。我强烈建议删除 cookie 要求并使用其他一些机制来传送数据。
  • @php_nub_qq: 有什么好的例子吗?
  • @Quentin:不幸的是,我无法控制服务器 :( 在这种情况下,安全警告不是问题,只要它在 Chrome(移动版)中运行就可以了。
  • 移动 Chrome?哦,这排除了 Java、Flash 和 ActiveX。你最好写一个原生应用程序而不是使用浏览器。

标签: javascript html cookies client-side http-get


【解决方案1】:

使用 jQuery,您可以以非常简单的方式发送 HTTP GET 请求,请查看reference

类似:

$.get( "test.php", { your_cookie_value: "111111" } );

【讨论】:

  • 这将设置一个 查询字符串 而不是 cookie。此外,假设 GET 未被滥用,JavaScript 将需要读取响应,并且(在默认情况下)同源策略将阻止这种情况。
  • Quentin 指出,这并没有设置 cookie,它传递了一个 QueryString :(
  • 是的,我明白了,也许使用 $.ajax() 你可以使用 withCredentials 字段,但我认为这行不通stackoverflow.com/questions/14462423/…
猜你喜欢
  • 2019-01-13
  • 2020-09-02
  • 2023-03-09
  • 2022-01-19
  • 1970-01-01
  • 2012-02-17
  • 2018-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多