Php Ajax url编码问题
我试图做的是将加密消息和相应的密钥(双向加密)发送到php页面,以便对其进行解密,然后在响应中返回结果 下面是我试图用jquery发送的加密消息的一个示例Php Ajax url编码问题,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我试图做的是将加密消息和相应的密钥(双向加密)发送到php页面,以便对其进行解密,然后在响应中返回结果 下面是我试图用jquery发送的加密消息的一个示例 var message = 'oPnHK7DE33xOLZok/23a92XH9NI3SlHGCulnh6+IuZN4cGhymYm5yxOmDynCDAG8u+cAbJ4KifxzsWsGgmTXoZoAtjkAhph/eWyuwMNfviNtgmz4x02JVJ6Rc6wDsqzzd6Mrl88ZZXyEshD1/+9JRS9rNalCt
var message = 'oPnHK7DE33xOLZok/23a92XH9NI3SlHGCulnh6+IuZN4cGhymYm5yxOmDynCDAG8u+cAbJ4KifxzsWsGgmTXoZoAtjkAhph/eWyuwMNfviNtgmz4x02JVJ6Rc6wDsqzzd6Mrl88ZZXyEshD1/+9JRS9rNalCtv//pC2FRAZMQhH5wxDn9kb6JITSs/aagUGFbLmq+jxg5ty55SKmri6IJg==';
var key = 'password';
$.post('decodeMessage.php?message=' + encodeURIComponent(message) + '&key=' + key, function(data) {
// do stuff with returned data here
});
接收的php代码如下所示
<?php
$encrypted = rawurldecode($_POST['message']);
$key = $_POST['key'];
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
echo $decrypted
?>
var data = { message: message, key: key };
$.post('decodeMessage.php', data, function(data) {
//handler
});
我的问题是,它只是返回胡言乱语,而不是实际解码信息
在没有ajax的情况下,我通过将$encrypted的值设置为ajax请求中传递的编码值来测试这一点,效果很好
如果有人能给我一些指导,告诉我为什么会发生这种情况,我将不胜感激
非常感谢。将数据作为对象发送
$.post('decodeMessage.php', {message: message, key: key}, function(data) {
// Wohoo
});
你看,jQuery为你处理这些东西,在晦涩难懂的代码层下:-)这样试试吧
$.post("decodeMessage.php", { message: message, key: key },function(data){
// ....
});
您正在传递查询字符串
$.post('decodeMessage.php?message=' + encodeURIComponent(message) + '&key=' + key, function(data) {
然后使用$\u GET而不是post
$encrypted = rawurldecode($_GET['message']);
$key = $_GET['key'];
如果希望在PHP中将元素作为POST变量处理,请将jquery代码更改为
<?php
$encrypted = rawurldecode($_POST['message']);
$key = $_POST['key'];
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
echo $decrypted
?>
var data = { message: message, key: key };
$.post('decodeMessage.php', data, function(data) {
//handler
});
等待你用JavaScript编写消息和密码(这是一个可以在HTML源代码中查看的纯文本)?你现在得了15分:)Eric。。。你就是那个男人!!!我刚试过,第一次就成功了。非常感谢你花时间来帮助我。为那位朋友干杯,我确实试着投票支持你的答案,但我首先需要15分,对不起。再次感谢你的帮助;只要我有15个代表点,我一定会投赞成票。