访问受限制的URI被拒绝“代码:”1012 – 跨域Ajax请求

我需要做跨域Ajax请求 – 这是我的代码

$.ajax( { url: redirectURL, data: $('#login-container form').serialize() + querystring, type: 'post', cache: false, dataType: 'jsonp', jsonp: 'jsonp_callback', }); 

 Error: [Exception... "Access to restricted URI denied" code: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)" location: "http://testsite/assets/scripts/jquery-1.3.2.js Line: 19"] Source File: http://testsite/assets/scripts/jquery-1.3.2.js Line: 19 

我也检查了以下链接 –

访问受限制的URI拒绝代码:1012

  $.ajax( { url: redirectURL+'?callback=?', data: $('#login-container form').serialize() + querystring, type: 'post', cache: false, dataType: 'html' }); 

我也在url中试过Callback。 我已经在stackoverflow中看到了关于这个问题的所有链接..但是无法克服这个问题任何人都可以帮助并告诉我如何克服!! 谢谢

您将无法在浏览器中执行跨域POST请求。

如果要进行JSONP调用以访问跨域URL,则可以使用JQuery的getJSON方法。 这将允许您仅发出GET请求。 如果您可以使用GET参数将登录信息提交到redirectURL,则可以使其工作。

请注意,POST到远程登录表单可能是浏览器不允许这样的跨域请求的最佳示例。 您不希望看起来像您的银行的网页能够从您银行的网站实际为您提供数据 – 这将成为非常有效的网上诱骗网页。

另一方面,如果你真的想解决这个问题,你可以编写一些服务器端代码,在给定输入参数的情况下,向redirectURL发出post请求并汇总响应。

请告诉我你没有写一个网页仿冒页面。

一种方法是使用您的服务器作为代理:

 AJAX Request -> Your server -> Server of interest AJAX Response Handler <- Your server <- Server of interest 

JSONP实际上不是Ajax,它不使用XMLHttpRequest而是使用动态script元素。 jQuery使这个透明,但JSONP仍然需要以下工作:

  1. 仅限HTTP GET ,您无法使用POST
  2. 服务器需要通过在对您指定的callback的调用中包装响应来支持它

检查您请求的URL是否支持JSONP并将调用更改为HTTP GET

如果您也控制远程服务器,在最近的浏览器(IE8,FF3.5)中,您可以克服跨域障碍:

IE的XDomainRequest方法和W3C和Mozillas Origin-Header 。

简而言之,如果您的服务器发送回HTTP标头

 Access-Control-Allow-Origin: * 

通过AJAX响应,即使请求来自不同的域,IE和Mozilla也会接受它。 您可以通过将*替换为允许的请求域来缩小范围。

“我需要做跨域Ajax请求”

你不能那样做 ,除非:

  • 你正在使用油脂猴子
  • 你正在制作一个jsonp请求,这不是真正的ajax

在像wamp或apache这样的服务器上运行它…

它不会给出错误……

 NS_ERROR_DOM_BAD_URI: Access to restricted URI