php - javascript post 到 .php 文件一台服务器不起作用 - 在浏览器中手动输入 URL 到相同的 .php 可以工作

标签 php javascript

我在理解如何传输 javascript(客户端)变量以便可以从 php(服务器端)作为 session 访问它们时遇到了一些问题:get an iframe's "src" value in PHP?

现在我处于一种情况,我使用 firebug 尝试调试正在发生的事情,但它没有意义:

我有这个函数来更新 iframe,并且我想传递该 iframe 正在显示的页面:

function frameclick(pageurl)
 {
        $.post("session_write.php?",
    {
            frameurl : pageurl             
    }

    $("#iFrame1").attr('src', pageurl);
    console.log  ('<?php echo "logout:".$langpath.$_SESSION['frameurl'];?>');
 }

pageurl 是前。 “/lang/en/new.htm” - 如果我用 firebug 检查它,我也可以看到它说它正确地传递了它(也通过/的转换)。

我发布到的脚本服务器端是这样的:

#session_write.php
<?php
session_start();
print_r($_GET['frameurl']);
if (isset($_GET['frameurl'])) 
{
$_SESSION['frameurl'] = $_GET['frameurl'];
print_r($_SESSION);
}
?>

通过 javascrot 发布到服务器上的 php 脚本将失败 - $_SESSION['frameurl'] 将是 '',但如果我是。像这样手动执行: (http):

//localhost/phpmenu/session_write.php?frameurl=lang%2Fen%2Fnew.htm

然后它将在 $_SESSION["frameurl"] 变量中正确设置。

我根本无法理解执行 javascript post 和在浏览器中手动执行它之间有什么不同,以及为什么它会导致我出现这个问题?

有人有想法吗?谢谢

最佳答案

您正在使用 .post,它执行 POST 请求,但当您在地址栏中输入 URL 时,这是一个 GET 请求。

$_GET 检索通过 GET 传递的任何参数,而 $_POST 检索通过 POST 传递的任何参数。因此,如果您在 Javascript 中使用 .post,但尝试在 PHP 中使用 $_GET 进行检索,则不会起作用。

关于php - javascript post 到 .php 文件一台服务器不起作用 - 在浏览器中手动输入 URL 到相同的 .php 可以工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13104366/

相关文章:

javascript - 如何检查 Jquery 数据是 JSON 格式还是简单的 HTML 格式?

javascript - Backbone.js 集合不添加对象

javascript - PhysicsJS - 如何通过标签(或其他值)查找物体

java - 如何从Mysql中的所有表中删除一条唯一记录

php - 为什么不能用三元运算符选择引用?

php - 获取表中重复数字值最多的名称

php - 对象数组上的 array_diff

php - 如何更改xdebug输出的颜色?

javascript - 将 JSON 对象转换为 JS 键/值对数组

javascript - Highcharts 圆环图百分比增加至 100.1%