jquery的jsonp请求的callback不能重复执行

如题,今天遇到一个jsonp的问题。和服务器有一个交互的过程,每次交互,都要从服务器去一段数据,并分析数据从而进行下一次的请求。同时这个服务器和当前php程序所在地服务器并非同源。

通过协商,服务器那边的返回结果格式如下

jQuery17105991549867037437_1353939516854(“<xml id=’111111111111111′>ksdfksd</xml>”);

jQuery17105991549867037437_1353939516854(“<xml id=’2222222222222222222′>ksdfksd</xml>”);

其中 jQuery17105991549867037437_1353939516854 是jQuery自动生成的回调函数名。

我在当前html页面的回调函数内设置在控制台输出接受到的参数。按照正常思维,输出应该是

<xml id=’111111111111111′>ksdfksd</xml>

<xml id=’2222222222222222222′>ksdfksd</xml>

但是实际输出的是<xml id=’2222222222222222222′>ksdfksd</xml>。只有第二个回调函数执行了。

 

但是,如果用原生的javascript插入script标签,则callback函数会执行两次。所以估计是jQuery封装所致,目前不知原因,网上亦没有搜到相关内容。所以我打算研究下jQuery源码,一探究竟。到时再补上原因。

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

*