我想对不同的服务器进行ajax调用(相同的域和框,只是一个不同的端口。) e.g。
我的页面是
http://localhost/index.html
我想发一个ajax get请求:
http://localhost:7076/?word=foo
我收到此错误:
Access to restricted URI denied (NS_ERROR_DOM_BAD_URI)
我知道您无法向其他域发出ajax请求,但它似乎还包含不同的端口?有没有解决方法?
答案 0 :(得分:4)
在您的端口80服务器代理请求到另一个端口的某个页面。例如:
http://localhost/proxy?port=7076&url=%2f%3fword%3dfoo
请注意最后一个查询字符串参数值的url编码。
答案 1 :(得分:1)
您可以使用JSONP。这是您使用请求指定回调的地方,来自您的ajax请求的响应将使用回调函数名称进行包装。您可以使用URL将标记插入HTML文档,而不是使用XmlHttpRequest。然后,当检索到响应时,将调用回调函数,将数据作为参数传递。
请查看此blog post以获取示例
答案 2 :(得分:0)
这是一个浏览器限制。所有javascript调用必须是脚本主页的同一服务器和端口。这将需要服务器端的东西来解决。 I.E.让localhost
处的流程将请求转发给localhost:7076
。
答案 3 :(得分:0)
很糟糕,但这是必要的...基本上你需要做的是通过本地代理代理你的AJAX请求 - 一些服务器端脚本/页面/你在同一个域上的任何东西 - 接收调用并将其转发到其他资源服务器端。可能会有一些你可以做的IFRAME技巧,但我认为它们不能很好地工作......虽然可能是错误的,但已经有一段时间了。