【问题标题】:Post and open PHP from within JavaScript. No form从 JavaScript 中发布和打开 PHP。没有表格
【发布时间】:2015-02-17 04:46:35
【问题描述】:

所以我看到了很多关于传递数据的 PHP 发布/获取方法的信息,但是我有一个有趣的问题需要帮助解决。

我有一个 HTML 页面,其中包含各种输入中的一些数据,并且我还在 JavaScript 后端运行了一些算法。我想将所有这些数据传递给 PHP 页面 - 这里的主要问题是我的数据在 HTML 和 JavaScript 之间拆分,因此显而易见的选择是使用基本 DOM 将 HTML 值读入脚本。但是,这意味着我必须通过 JavaScript 发布数据,这似乎是 AJAX 的工作。这是我的代码 -

var userData = {

    data: "data"ss

}

jsonData = JSON.stringify(userData);
alert(jsonData);

$.ajax({  
    type: 'POST',  
    url: 'mypage.php', 
    data: userData,
    datatype: json,
    success: function() {
        window.open("mypage.php");
    },
    error: function(err, text){
        alert(text);
    }
});

window.open("mypage.php");

我刚刚开始熟悉 PHP,所以我真的很想知道如何让我使用 AJAX 发布的数据显示在最终的 PHP 页面中,因为现在它还没有这样做。我所有的输入都是空白的。我可以提供更多详细信息 - 我正在使用启用 PHP 的网络托管服务,所以我知道这不是问题所在。

我也知道我可以将我的 JavaScript 值插入 HTML 输入并只使用表单,但这似乎不太安全。无论如何,感谢您的帮助!

【问题讨论】:

  • 旁注:那里的“ss”是不小心出现的吗? data: "data"ss
  • 如果你想导航到你应该使用表单的页面。在表单上使用 ajax 没有安全优势。
  • 术语精挑细选:除非您在服务器上运行类似 Node.js 的东西,否则您的 JavaScript 几乎肯定是您的 前端 端的一部分,运行在浏览器。 PHP 将是您的后端(在服务器上运行)。我提出这个问题是因为混淆或不理解前端与后端的分离,以及在客户端与服务器上运行的代码,是学习基于 Web 编程的人最常犯的错误。
  • 那么有没有办法通过JavaScript像表单一样打开PHP页面?我试图避免使用隐藏输入,因为我不希望用户能够查看源代码并看到正在传递的 JavaScript 值。我知道 PHP 是一个服务器端脚本;我只是在一个更大的 HTML 文档中使用它来填充某些区域,其中包含用户直接输入的数据(通过输入)和通过我的算法(JavaScript)派生的数据。如果我确实将 JavaScript 值隐藏起来,它们对查看源操作是否可见?

标签: javascript php ajax json post


【解决方案1】:

实际上,Ajax 并不是您想要的。 Ajax 请求的目的是“静默”加载/发送数据,而不更改文档位置。

您可能必须创建一个表单(使用 jQuery),将其“action”属性设置为您的页面 URL,在其中添加您的数据(使用隐藏字段),然后提交。

这样,您的数据将被传递到新页面,您将能够在 PHP 中使用 $_POST 来检索它们,并将它们提供给表单的值。

【讨论】:

  • 这是我开始的地方,我只是试图在脚本中做所有事情以防止查看源代码访问算法输出。这没什么大不了的,但我个人更喜欢更优雅和动态的编程——隐藏输入解决方案似乎有点暴力。但如果它有效,我想我应该继续使用它哈哈
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-27
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-19
  • 2022-01-12
相关资源
最近更新 更多