【问题标题】:$_POST variables not received when sent via HTTPS with JQuery Ajax使用 JQuery Ajax 通过 HTTPS 发送时未收到 $_POST 变量
【发布时间】:2012-07-26 00:45:13
【问题描述】:

我正在开发一个应用程序,该应用程序需要填写使用 Jquery Ajax 生成并通过 https 连接发送的表单。

问题是当我通过正常的 http 连接测试应用程序时,应用程序运行良好,但是当我将其上传到服务器并通过 https 连接连接到它时,接收文件未检测到 $_POST 变量。

这可能是什么问题?

【问题讨论】:

  • 您究竟是如何发送它们的?页面和 ajax 端点的协议和域名是否匹配?
  • 你能发布你的 jquery ajax 代码吗?
  • 您能否澄清一下:您是否在使用 http,向 https 发出 ajax 请求?您如何确定未收到 $_POST 变量?
  • @Esailija - 你在 http 上,向 https 发出 ajax 请求吗?不,应用程序托管在安全服务器上,因此它的 Https 到 Https。您如何确定未收到 $_POST 变量?我在接收文件上插入一些代码来回显发送的变量,没有显示任何内容
  • 好吧,我可能会从 chrome 开发人员工具中的网络选项卡开始,扩展控制台以查看任何可能的错误。然后我会清除网络活动,按下记录按钮并发出请求,然后查看客户端是否成功将所有内容发送到服务器。

标签: php jquery ajax https


【解决方案1】:

这将是跨域发布,将被浏览器阻止。请看本帖HTTPS request via AJAX from HTTP page

【讨论】:

  • 问题并没有说页面是通过 HTTP 加载的,即使它确实如此 - 仍然会发出请求,浏览器只会拒绝向 JS 公开响应。
  • @Quentin 至少对我来说不是 100% 清楚,他说他正在使用普通 http 进行测试,当他通过 https 上传时它不起作用。
  • @Quentin 这是真的吗?我认为 SOP 会阻止 JS 提出请求。当然,通过这种方式行为,它唯一能做的就是让 XSS 变得更加危险,而且并没有真正起到任何合法有用的目的。
  • @DaveRandom — 它与 XSS 无关。同源策略阻止 Mallory 告诉 Alice 的浏览器从 Bob 的站点获取 Alice 的个人数据并将其提供给 Malory。如果请求导致 Bob 的站点上发生了某些事情,那么 Malory 可以设置一个链接或表单来发出请求。 Bob 需要实施CSRF 保护来阻止这种情况的发生。
  • 而对问题本身的评论刚刚证实了Ajax请求和对原始页面的请求都是通过HTTPS的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-14
  • 2015-08-17
  • 1970-01-01
  • 2014-01-30
  • 2018-01-05
  • 1970-01-01
  • 2016-10-11
相关资源
最近更新 更多