如何通过带有easyXDM的AJAX帖子将javascript对象/数组作为键值对发送?

最近我意识到我需要使用 easyXDM而不是jQuery的$.ajax来进行跨域发布请求.在设置easyXDM之后,我发现这些功能非常接近:

jQuery的:

$.ajax({
    url: "/ajax/",method: "POST",data: myData
});

easyXDM:

xhr.request({
    url: "/ajax/",dataType: 'json',// I added this trying to fix the problem,didn't work
    data: myData
});

myData设置如下:

myData = {};
myData[1] = 'hello';
myData[2] = 'goodbye';
myData[3] = {};
myData[3][1] = 'sub1';
myData[3][2] = 'sub2';
myData[3][3] = 'sub3';

当我使用jQuery发出请求时,它可以正确处理子字段,但不能使用easyXDM.

以下是POST请求如何通过jQuery进入服务器:

screenshot-with-shadow.png http://img37.imageshack.us/img37/4526/screenshotwithshadow.png

以下是easyXDM的用法

screenshot-with-shadow.png http://img204.imageshack.us/img204/4526/screenshotwithshadow.png

如何通过像jQuery这样的easyXDM / XHR请求发送javascript对象/键值对数组?

鉴于评论中讨论的easyXDM的局限性,您可以使用它的唯一方法是在将数据传递给.request时手动序列化数据,即
xhr.request({
    url: "/ajax/",data: {jsonData: JSON.stringify(myData)}
});

或者,您可以创建自己的postMessage解决方案,但是您将排除IE7及以下版本.

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...