【发布时间】:2014-10-31 00:11:45
【问题描述】:
我正在尝试通过 ajax 将数据从客户端 (javascript) 发送到服务器 (php)。 我有一个看起来像这样的对象:
sinfo={
topic_title:title,
topic_id: tid,
section_name:section_name,
section_id: fid,
circuito: "fc",
from_mid:mid,
sito:site,
st: st,
tags:{"m4148305":{"post_id":987649,"from_id":1}}
}
我想将该对象传递给服务器。 我知道的唯一方法是使用 JQuery,所以我尝试了类似的方法:
$.post(baseurl+"/server/?act=post",sinfo,function(e)
{
sessionStorage.PixelTagSystemTagRequest="false";
});
它在 Chrome 和 Safari 上运行良好。但是 Firefox 显示一个奇怪的错误,例如:
在 HTMLElement 上调用事件 .click() 不实现接口
解决方案应该很简单:更新 JQuery,不幸的是我不允许这样做。 所以我尝试了一个 Pure JS 解决方案
var fd = new FormData(), lol, xml;
for(lol in sinfo)
{
fd.append(lol,sinfo[lol]);
//alert(lol+" = "+sinfo[lol]);
}
xml = new XMLHttpRequest();
xml.open("POST",baseurl+"/server/?act=post");
xml.onreadystatechange=function()
{
if(xml.readyState==4)
{
sessionStorage.PixelTagSystemTagRequest="false";
alert(xml.responseText);
}
};
xml.send(fd);
但是 sinfo.tags 仍然是一个对象,我不知道如何将该属性传递给服务器。
P.s:我试图避免对对象进行字符串化(在 JSON 中),所以我不必更改 php 代码。
【问题讨论】:
-
是否存在不能更改 PHP 代码的特定限制因素?
标签: javascript php jquery arrays ajax