javascript - 使用 jQuery post 从另一台服务器调用 URL

标签 javascript jquery apache glassfish cors

我正在使用 jQuery.post() 方法将请求发送到另一台服务器并从该服务器获取响应。

$.post('http://www.example.com:9876/example/myServletURL',{param1:param1}).done(function(data)
{
    alert(data);
});

但我没有收到服务器的任何响应。我已经在服务器上检查过,我收到了 post 方法发送的请求。

如果将 URL 更改为位于同一 war 文件(同一域) 中的 Servlet,我将收到响应。

我搜索了一下,发现这可能是因为same origin policy .

我的问题是,如何使用 jQuery.post() 方法允许跨域请求。

编辑1

用于部署的两台不同服务器的域相同,但端口号不同。(用于 php 的 Apache Web 服务器和用于 java 的 Glassfish)

解决方案

我已放置以下代码以允许在我的 servlet 中进行跨域请求。

response.addHeader("Access-Control-Allow-Origin", "*");

最佳答案

您无法更改请求中的跨域请求策略,因为这会破坏同源策略的安全目的。发送响应的服务器必须启用 CORS(跨源资源共享)。响应 header 必须包含 'Access-Control-Allow-Origin': '*'* 允许任何站点访问服务器,如果您不想向所有人授予访问权限,可以用单个站点代替。如果您可以控制要发帖的服务器,http://enable-cors.org/index.html是关于如何为您的请求/响应启用 CORS 的丰富资源。

关于javascript - 使用 jQuery post 从另一台服务器调用 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20812040/

相关文章:

javascript - 添加标签以包含现有表格

javascript - 使用颜色选择器使用 jquery 更改颜色?

php - 表单 POST 数据正在转换我的输入

multithreading - 为什么多线程经常与多处理结合使用?

javascript - 如何使 xyz.xhtml 中的 <img> 可点击,以便从 abc.xhtml 中的 <p> 标签读取数据?

javascript - 代码在控制台中工作,但在加载网站时不起作用

javascript - 修复两个高度之间的 div 位置

jQuery UI 可拖动限制(像素)

Apache 多个 Access-Control-Allow-Origin 设置

javascript - 从 Chrome 扩展访问 iframe URL