您如何解决FireFox 3上的Ajax跨站点脚本问题?
如果您正在使用jQuery,它有一个回调函数来克服这个问题:
http://docs.jquery.com/Ajax/jQuery.ajax#options
从jQuery 1.2开始,如果指定了JSONP回调,则可以加载位于另一个域的JSON数据,这可以这样做:"myurl?callback =?".jQuery自动替换?使用正确的方法名称来调用,调用指定的回调.或者,如果将dataType设置为"jsonp",则回调将自动添加到您的Ajax请求中.
或者,您可以向服务器端脚本发出ajax请求,该脚本为您执行跨域调用,然后将数据传递回脚本
要更新答案(我想,主要是为了我以后查找此答案时的好处),如果要加载XML或其他内容,您可以随时询问用户是否允许我们使用此代码从其他站点读取:
try { if (netscape.security.PrivilegeManager.enablePrivilege) netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); } catch (e) { alert("Sorry, browser security settings won't let this program run."); return; }
(来自RESTful Web服务书)但是,这只适用于firefox,当从本地文件加载html文件时.所以,没那么有用.