原型Ajax请求添加了一长串函数

时间:2015-05-20 15:53:39

标签: javascript ajax json prototype prototypejs

在使用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;

你知道它来自哪里吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

找到了罪魁祸首!为了摆脱原型函数,给Ajax.Request一个键值对作为参数,如下所示:

new Ajax.Request('AjaxClass.php', {
     method: 'post',
     parameters: {
         JSON: Params
     }
});

要获取请求,只需将JSON密钥添加到$ _REQUEST,如下所示:

$_REQUEST["JSON"]