【问题标题】:Ajax Push Engine (APE): How to Send Binary Data or Special CharactersAjax 推送引擎 (APE):如何发送二进制数据或特殊字符
【发布时间】:2012-02-14 10:46:44
【问题描述】:

此代码示例来自APE官网:http://www.ape-project.org/

var client = new APE.Client();

client.load();

client.core.join('testChannel');

client.request.send('foo', {ping: 'ho hey', fieldWidthBinaryDataOrSpecialCharacters: '+/'});

client.onRaw('bar', function(raw, pipe) {
    console.log('echo : ' + raw.data.echo);
    console.log('Receiving : ' + raw.data.hello);
});

我在服务器端接收数据时,发现+/这个特殊字符已经被URL编码(%2B%2F)。

APE 总是使用 GET 吗?如果我们使用 POST,我认为我们可以发布任何数据,包括二进制数据,对吧?但是如何在 JSON 中使用 POST 呢?

我的情况是,即使我不使用二进制格式,我也必须使用 Base64。但是标准 Base64 使用 +/,这不是 URL 安全的。您可能会建议使用 Base64 的 URL 安全版本,但 URLSafeBase64 不是标准的,它还可能会产生其他问题。

我是不是误会了什么?

谢谢。

彼得

【问题讨论】:

    标签: ajax json post binary-data ape


    【解决方案1】:

    我终于做了两步编码:

    客户端:

    1. Base64 编码;

    服务器端:

    1. URL 解码; (似乎 URL 编码是在 APE 的某处自动完成的)
    2. Base64 解码。

    P.S.:如果有人知道如何以更有效的方式传输二进制数据,请告诉我,我会将您的答案重新标记为正确的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多