从javascript传递到php时,变量会发生变化

从javascript传递到php时,变量会发生变化,javascript,php,Javascript,Php,所以我有这个密码 $('#sepia').click(function () { var filePathName = tempFilePath; alert(filePathName); $.ajax({ type: 'POST', url: 'php/sepia.php', data: { FilePath: filePathName }, success: fu

所以我有这个密码

 $('#sepia').click(function () {
    var filePathName = tempFilePath;
    alert(filePathName);
    $.ajax({
        type: 'POST',
        url: 'php/sepia.php',
        data: {
            FilePath: filePathName
        },
        success: function (data) {
            pictureReset();
        }
    });
});
警报(filePathName)具有正确的值test.jpg,但一旦通过

            data: {
                FilePath: filePathName
            }
该值被更改为不可理解的文本,如下所示。jhSerZR6i1T952C3bk7vEOGCj8Pz\u tbytuHCRGJ81A。

即使我用“hp_2.jpg”替换
filePathName
,我仍然会收到相同的随机字母消息


没关系,我发现了错误。当我回到脚本中使用文件路径名时,代码中的任何地方都没有。在末尾添加+“”并修复它:)

好的,让我们试试其他的

通常是一样的,但它可能会给出另一个结果

var tempFilePath = 'test.jpg';
$('#sepia').click(function () {
    var filePathName = tempFilePath;
    $.post('php/sepia.php', 
    {
        data:   {
                    //FilePath: filePathName changed to
                    fpath: filePathName
                }
    }).done(function(response){
        console.log(response);
    });
});
并将其添加到sepia.php:

<?php
    echo "<pre>";
    print_r($_POST);
    echo "</pre>";
    die();

    // rest of your code
?>

在控制台中

第一次猜测?您有一个对/image/的引用。您的
alert
语句正在对其进行字符串化,将其转换为一个文件名,但
POST
实际上是自己上载图像。因此,如果我传递了FilePath:filePathName+'',它会修复它吗?如果我的猜测是正确的,它应该修复。您可以在
警报
之前添加
控制台.log(filePathName)
并查看它提供了什么。它还返回正确的文件路径名,我添加了“”,但仍然得到了长字符串:(好的。第二次尝试:查看调试工具
Network
选项卡,看看实际发送的是什么。如果字符串
test.jpg
正在发送,那么问题就出在服务器端PHP代码上。返回不可理解的字符串也是为了尝试和错误…将
FilePath
更改为
fpath
array( 
       "FilePath" => "test.jpg" 
);