首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ajax url编码问题

Ajax url编码问题
EN

Stack Overflow用户
提问于 2013-07-11 20:25:16
回答 3查看 335关注 0票数 1

我正在尝试做的是发送一个加密的消息和相应的密钥(双向加密)到一个php页面进行解密,然后在响应中返回结果。

下面是我试图用jquery发送的加密消息的一个示例。

代码语言:javascript
复制
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代码如下

代码语言:javascript
复制
 <?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

 ?>

我的问题是,它只是返回胡言乱语,而不是真正解码消息。

我在没有使用ajax的情况下对此进行了测试,方法是将$encrypted的值设置为在ajax请求中传递的编码值,它工作得很好。

如果有人能为我提供任何关于为什么会发生这种情况的指导,我将不胜感激。

非常感谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-11 20:27:58

而是将数据作为对象发送。

代码语言:javascript
复制
$.post('decodeMessage.php', {message: message, key: key}, function(data) {
    // Wohoo
});

您看,jQuery会在晦涩的代码层下为您处理这些内容:-)

票数 3
EN

Stack Overflow用户

发布于 2013-07-11 20:28:27

这样试试吧。

代码语言:javascript
复制
$.post("decodeMessage.php", { message: message, key: key },function(data){
   // ....
});
票数 0
EN

Stack Overflow用户

发布于 2013-07-11 20:28:27

您传递了一个查询字符串

代码语言:javascript
复制
$.post('decodeMessage.php?message=' + encodeURIComponent(message) + '&key=' + key, function(data) {

然后使用$_GET代替post

代码语言:javascript
复制
 $encrypted = rawurldecode($_GET['message']);
 $key = $_GET['key'];

如果希望在PHP中将元素作为POST变量处理,请将jquery代码更改为如下所示

代码语言:javascript
复制
var data = { message: message, key: key };
$.post('decodeMessage.php', data, function(data) {
   //handler 
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17593339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档