RestEasy Ajax 请求

3

我有一个 RestEasy api,需要为移动客户端提供所有 http 方法的访问权限,所有这些请求都必须通过 ajax 发送。

以下是客户端代码示例:

var data = {
   login: 'usertest@gmail.com',
   password: '123456'
 };

 $.ajax({
   url: 'http://1.1.1.3:8080/api/admin',
   type: 'POST',
   contentType : 'application/json',
   dataType: "json",
   data: JSON.stringify(data),
   success: function(){
     console.log(arguments);
   },
   error: function(){
     console.log('error')
   }
 });

这里是关于服务器的信息:

@POST
@Consumes("application/json")
@Produces("application/json")
public Response doLogin(User user) {...}

以下是错误信息:

XMLHttpRequest cannot load http://1.1.1.3:8080/api/admin. Origin http://stackoverflow.com is not allowed by Access-Control-Allow-Origin.

这是当我从本地主机请求时,服务器返回的标题响应。
Access-Control-Allow-Cred...    true
Access-Control-Allow-Orig...    http://1.1.1.3:8080 //request sent from http://1.1.1.3:8080
Access-Control-Expose-Hea...    X-Test-2, X-Test-1
Content-Length  1136
Content-Type    text/html;charset=utf-8
Date    Wed, 19 Dec 2012 17:54:19 GMT
Server  Apache-Coyote/1.1

PS: 通常的http请求都可以正常工作。

我错过了什么?

1个回答

0
我在朋友的帮助下找到了它...我正在使用来自http://software.dzhuvinov.com的Cors Filter库,我在web.xml中缺少一个参数,我通过添加"Origin"来修复它:
    <init-param>
        <param-name>cors.supportedHeaders</param-name>
        <param-value>Origin, Accept, Content-Type,
            X-Requested-With</param-value>
    </init-param>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接