在使用JSON时,我将一长串函数(来自原型)添加到我的Ajax.Request参数中! 看起来它与我的for循环有关,它是:
for (x in Elements) {
if (typeof Elements[x] !== "function") {
var Element = {
'ElementID': Elements[x].options['ElementID'],
'ElementValue': Elements[x].Value
};
Params.push(Object.toJSON(Element, true));
}
}
我的数据是这样的:
"{"ElementID":"MainPage_1"}", "{"ElementID":"Sub_1_1"}", "{"ElementID":"Sub_1_2"}", "{"ElementID":"MainPage_2"}"
我使用Object.toJSON来获取JSON
我的Ajax.Request:
new Ajax.Request('AjaxClass.php', {
method: 'post',
parameters: Params
});
我得到了这样的请求:
new AjaxClass($_REQUEST);
class AjaxClass{
function __construct(Array $request){
var_dump($request);
}
}
一切都得到正常发送但我的$ Request数组有一个很长的列表函数,最后看起来像是prototype.js类或类似的东西这里有一个小片段:
function each
(iterator,context){var index=0;try{this._each(function(value){iterator.call(context,value,index++);}
);}catch(e){if(e!=$break)throw e;}
return this;
你知道它来自哪里吗?
非常感谢!
答案 0 :(得分:0)
找到了罪魁祸首!为了摆脱原型函数,给Ajax.Request一个键值对作为参数,如下所示:
new Ajax.Request('AjaxClass.php', {
method: 'post',
parameters: {
JSON: Params
}
});
要获取请求,只需将JSON密钥添加到$ _REQUEST,如下所示:
$_REQUEST["JSON"]