编程大师!我根据"XMPP编程“一书创建了一些聊天工具,因此在我的项目中包含了strophe.js和gab.js。一切都很好,IE和Firefox中的服务都能正常工作。但不是Opera,在本例中Opera抛出一个异常
Uncaught exception: ReferenceError: Security violation
Error thrown at line 2554, column 16 in <anonymous function: _processRequest>() in http://chat.aviportal.com/strophejs/strophe.js:
req.xhr.send(req.data);
called from line 2566, column 16 in <anonymous function: _processRequest>(i) in http://chat.aviportal.com/strophejs/strophe.js:
sendFunc();
called from line 2607, column 12 in <anonymous function: _throttledRequestHandler>() in http://chat.aviportal.com/strophejs/strophe.js:
this._processRequest(0);
called from line 2709, column 16 in <anonymous function: _onRequestStateChange>(func, req) in http://chat.aviportal.com/strophejs/strophe.js:
this._throttledRequestHandler();如果有人有类似的问题,请让我知道,或者,我会听取你的建议。先谢谢你,亚历克斯
编辑:好的,首先,感谢你的回复!
$(document).ready(function() {
var conn = new Strophe.Connection(
'http://chat.aviportal.com:5280/xmpp-httpbind');
conn.connect('guest2@chat.aviportal.com', 'passwd', function (status) {
if (status === Strophe.Status.CONNECTED) {
$(document).trigger('connected');
} else if (status === Strophe.Status.DISCONNECTED) {
$(document).trigger('disconnected');
}
});这就是我初始化strophe连接的方式,进程在Guest2(‘conn.connect 2@ that .aviportal.com’等)上发出异常。顺便说一句,什么是CORS,跨域请求?在与php文件相同的子域上的ejabberd,所以我不认为,但是,有一个小的可能性是^_^
发布于 2012-03-04 18:18:25
尽管您的the服务器与ejabberd运行在同一个域上,但访问不同的端口确实会构成跨域请求,并应引发安全异常。因此,连接到domain:5280与连接到domain:80是不同的。
要简单地解决这个问题,你应该在你的设置中包含一个代理。你很可能已经在前面安装了apache或nginx,所以你只需要代理domain:80/http-bind转到domain:5280即可。例如,对于nginx,您应该具有如下内容:
location /http-bind {
proxy_buffering off;
tcp_nodelay on;
keepalive_timeout 55;
proxy_pass http://localhost:5280;
}在你的nginx.conf里。
发布于 2013-05-24 23:08:32
你也可以不用Jquery来解决这个问题!
在要从中获取数据的文件头中添加以下内容:
Access-Control-Allow-Origin: *发布于 2012-03-03 15:02:15
如果您使用的库是基于jQuery的,请尝试将其放入您的文件中:
jQuery.support.cors = true;
此错误是由Opera阻止跨站点请求引起的。如果服务器端脚本允许,CORS将允许从普通网页发出跨站点请求。阅读更多here。
目前,Opera只允许在扩展中跨站点请求,只要你在config.xml文件中使用specify it。然而,即便如此,如果您试图在扩展中使用jQuery来发出XSS请求,您将会遇到安全冲突,除非您在文件中包含了我在开头提到的行。
https://stackoverflow.com/questions/9538086
复制相似问题