从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"
);