当前位置:  开发笔记 > 编程语言 > 正文

IE6中的jQuery JSONP问题

如何解决《IE6中的jQueryJSONP问题》经验,为你挑选了1个好方法。

我在使用IE6从不同域中的服务器检索JSONP响应时遇到了问题.

当我使用JSONP向与网页相同的域中的服务器进行相同的AJAX调用时,所有浏览器(包括IE6)都可以正常运行.但是,当我使用JSONP在域(XSS)之间进行调用时,Internet Explorer 6会锁定.具体来说,CPU达到100%并且永远不会达到"成功"回调.我在域之间取得成功的唯一时间是响应非常短(通常少于150个字节).响应的长度似乎很重要.

我正在使用jQuery 1.2.6.我已经尝试了$ .getJSON()方法和$ .ajax(dataType:"jsonp")方法但没有成功.这在FF3和IE7中运行得很好.我找不到其他有类似问题的人.我认为IE6中的jQuery完全支持这种类型的功能.

非常感谢任何帮助,

安德鲁


这是进行AJAX调用的html页面的代码.制作此文件(和jquery库)的本地副本,并使用IE6进行拍摄.对我来说,它总是会导致CPU出现尖峰而没有呈现任何响应.




    Untitled Page
    
    


Test

这是响应中返回的JSON.根据JSLint,它是有效的JSON(一旦你删除围绕它的方法调用).真正的结果会有所不同,但这似乎是导致失败的最简单的例子.服务器是ASP.Net应用程序,返回"application/json"类型的响应.我已经尝试将响应类型更改为'application/javascript'和'application/x-javascript',但它没有任何影响.我非常感谢你的帮助.

jsonp1222350625589(["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18"

,"19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38"

,"39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58"

,"59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78"

,"79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98"

,"99","100","101","102","103","104","105","106","107","108","109","110","111","112","113","114","115"

,"116","117","118","119","120","121","122","123","124","125","126","127","128","129","130","131","132"

,"133","134","135","136","137","138","139","140","141","142","143","144","145","146","147","148","149"

,"150","151","152","153","154","155","156","157","158","159","160","161","162","163","164","165","166"

,"167","168","169","170","171","172","173","174","175","176","177","178","179","180","181","182","183"

,"184","185","186","187","188","189","190","191","192","193","194","195","196","197","198","199","200"

,"201","202","203","204","205","206","207","208","209","210","211","212","213","214","215","216","217"

,"218","219","220","221","222","223","224","225","226","227","228","229","230","231","232","233","234"

,"235","236","237","238","239","240","241","242","243","244","245","246","247","248","249","250","251"

,"252","253","254","255","256","257","258","259","260","261","262","263","264","265","266","267","268"

,"269","270","271","272","273","274","275","276","277","278","279","280","281","282","283","284","285"

,"286","287","288","289","290","291","292","293","294","295","296","297","298","299","300","301","302"

,"303","304","305","306","307","308","309","310","311","312","313","314","315","316","317","318","319"

,"320","321","322","323","324","325","326","327","328","329","330","331","332","333","334","335","336"

,"337","338","339","340","341","342","343","344","345","346","347","348","349","350","351","352","353"

,"354","355","356","357","358","359","360","361","362","363","364","365","366","367","368","369","370"

,"371","372","373","374","375","376","377","378","379","380","381","382","383","384","385","386","387"

,"388","389","390","391","392","393","394","395","396","397","398","399","400","401","402","403","404"

,"405","406","407","408","409","410","411","412","413","414","415","416","417","418","419","420","421"

,"422","423","424","425","426","427","428","429","430","431","432","433","434","435","436","437","438"

,"439","440","441","442","443","444","445","446","447","448","449","450","451","452","453","454","455"

,"456","457","458","459","460","461","462","463","464","465","466","467","468","469","470","471","472"

,"473","474","475","476","477","478","479","480","481","482","483","484","485","486","487","488","489"

,"490","491","492","493","494","495","496","497","498","499"])

Remy Sharp.. 5

你不会那么喜欢这种反应,但我确信它在你的服务器端.

原因如下:

我已经重新创建了你的场景,当我和你的JSONP响应器一起运行时,我会让你的IE6挂起,正如你所解释的那样.

但是,当我将JSONP响应器更改为我自己的代码(与上面给出的输出完全相同)时,它可以正常工作(在所有浏览器中,尤其是IE6).

这是我一起嘲笑的例子:

http://jsbin.com/udako(编辑http://jsbin.com/udako/edit)

回调是http://jsbin.com/rs.php?callback=?

小记 - 我最初怀疑字符串长度:我已经读过IE中的字符串最大长度为〜1Mb,这就是你要打的(我不是100%肯定这是否准确),但是我将连接改为数组推送 - 无论如何通常更快.



1> Remy Sharp..:

你不会那么喜欢这种反应,但我确信它在你的服务器端.

原因如下:

我已经重新创建了你的场景,当我和你的JSONP响应器一起运行时,我会让你的IE6挂起,正如你所解释的那样.

但是,当我将JSONP响应器更改为我自己的代码(与上面给出的输出完全相同)时,它可以正常工作(在所有浏览器中,尤其是IE6).

这是我一起嘲笑的例子:

http://jsbin.com/udako(编辑http://jsbin.com/udako/edit)

回调是http://jsbin.com/rs.php?callback=?

小记 - 我最初怀疑字符串长度:我已经读过IE中的字符串最大长度为〜1Mb,这就是你要打的(我不是100%肯定这是否准确),但是我将连接改为数组推送 - 无论如何通常更快.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有