2

我想对不同的服务器(相同的域和框,只是不同的端口)进行 ajax 调用。例如

我的页面是

http://localhost/index.html

我想发出 ajax get 请求:

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

我收到此错误:

拒绝访问受限 URI (NS_ERROR_DOM_BAD_URI) 

我知道你不能向不同的域发出 ajax 请求,但似乎这也包括不同的端口?有什么解决方法吗?

4

4 回答 4

4

有某个页面在你的 80 端口服务器代理请求到另一个端口。例如:

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

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

于 2008-09-11T19:41:31.690 回答
1

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

查看此博客文章以获取示例

于 2008-09-11T19:43:30.670 回答
0

这是浏览器限制。所有 javascript 调用都必须指向脚本所在的同一服务器和端口。这将需要一些服务器端的东西来解决。IElocalhost将请求转发到localhost:7076.

于 2008-09-11T19:43:57.690 回答
0

这很糟糕,但这是必要的......基本上你需要做的是通过本地代理代理你的 AJAX 请求 - 一些服务器端脚本/页面/你所在的同一域上的任何内容 - 接听电话并将其转发到其他资源服务器端。您可能可以使用一些 IFRAME 技巧,但我认为它们效果不佳......不过可能是错误的,已经有一段时间了。

于 2008-09-11T19:44:33.553 回答