【发布时间】:2014-01-15 17:10:12
【问题描述】:
我正在使用jQuery.post() 方法向另一台服务器发送请求并从该服务器获取响应。
$.post('http://www.example.com:9876/example/myServletURL',{param1:param1}).done(function(data)
{
alert(data);
});
但我没有收到来自服务器的任何响应。我已经检查了服务器,我收到了post 方法发送的请求。
如果将 URL 更改为与 war file(same domain) 相同的 Servlet,我会收到响应。
我搜索了一下,发现这可能是因为same origin policy。
我的问题是我应该如何使用jQuery.post() 方法允许跨域请求。
EDIT1
域相同,但端口号不同,用于部署的两台不同服务器。(Apache web server for php and Glassfish for java)
解决方案
我在我的 servlet 中添加了以下代码以允许跨域请求。
response.addHeader("Access-Control-Allow-Origin", "*");
【问题讨论】:
-
json-p.org 或几行 PHP
-
您为什么不尝试将您的请求设置为POSTMAN 之类的内容?它也可以生成适当的 CURL 命令来进行测试。如果它成功,那么您知道您的问题与您的特定代码有关。如果不成功,则可能是您的 CURL 语法有问题,或者是您构建请求/标头/等的方式有问题。或者,根据错误,使用服务器。
标签: javascript jquery apache glassfish cors