我正在尝试使用$.get进行ajax (restful服务)调用。它在IE中工作得很好,但在firefox的情况下给出了'401未授权‘。
起初,我认为这是“ntlm身份验证”的问题,并尝试添加( restful服务的域-例如:http://mydomain.com in about:config -> network.automatic-ntlm-auth.trusted-uris ),但没有成功。
我确信这不是ntlm的问题,因为在firefox浏览器中输入相同的url (restful服务)会给我数据,但通过$.get会给出401未经授权的数据。
有没有人知道问题出在哪里。
谢谢
更新:
我刚刚发现,这是由于sAc提到的“跨域”问题。我对w.r.t JSONP还有一个疑问,我使用的服务不支持url中的额外参数。但是如果我必须使用JSONP回调,我必须添加"callback=?“添加到url。我有没有办法做到这一点。
发布于 2010-07-29 15:06:22
从你的评论中:
如果我的服务器在abc.xyz.domain.com上,我正在尝试从efg.xyz.domain.com访问数据。我也在服务器上试过了,但是同样的错误
abc.xyz.domain.com和efg.xyz.domain.com是不同的域:
在计算中,同源策略是许多浏览器端编程语言(如JavaScript )的重要安全概念。该策略允许在源自同一站点的页面上运行的脚本在没有特定限制的情况下访问彼此的方法和属性,但阻止跨不同站点上的页面访问大多数方法和属性。
你可能想看看JSONP来解决这个问题。
发布于 2011-04-18 16:53:58
你可以试试这个吗,它对我来说很有效(也可以跨域):
jQuery.ajax( { async: true,//跨域请求不支持同步操作crossDomain: true,dataType:'jsonp',success: onSuccess,error: onError,//不应为跨域脚本调用此处理程序。url:"https://my.other.domain/test/login.py?callback=?“} );
你好,米歇尔。
https://stackoverflow.com/questions/3360011
复制相似问题