Ajax和受限制的URI

问题描述:

我想对另一个服务器(相同的域和框,只是不同的端口)进行ajax调用。Ajax和受限制的URI

我的页面是

 
http://localhost/index.html 

我想提出一个AJAX GET请求:

 
http://localhost:7076/?word=foo 

我收到此错误:

 
Access to restricted URI denied (NS_ERROR_DOM_BAD_URI) 

我知道,你可以不是向不同的域发出ajax请求,但它似乎也包含不同的端口?有没有解决办法?

将端口80服务器代理请求的某个页面发送到其他端口。例如:

http://localhost/proxy?port=7076&url=%2f%3fword%3dfoo 

请注意最后一个查询字符串参数值的url编码。

您可以使用JSONP。这是您用请求指定回调的地方,来自您的ajax请求的响应将使用回调函数名称进行包装。不要使用XmlHttpRequest,而是使用URL将标记插入到HTML文档中。然后,当检索到响应时,调用回调函数,将数据作为参数传递。

入住这blog post出了一个例子

这是一个浏览器的限制。所有的JavaScript调用都必须与脚本主目录中的同一台服务器和端口相同。这将需要服务器端来解决。 I.E.请求localhost将请求转发至localhost:7076

它很糟糕,但它是必要的...基本上你需要做的是通过本地代理代理你的AJAX请求 - 一些服务器端脚本/页面/无论你在同一个域名 - 接收呼叫并将其转发到其他资源服务器端。可能会有一些IFRAME技巧你可以做,但我认为他们工作得很好......虽然可能是错误的,但已经有一段时间了。