【问题标题】:Method POST not working when send request to REST Service向 REST 服务发送请求时方法 POST 不起作用
【发布时间】:2014-10-01 12:24:05
【问题描述】:

我的问题看起来像这样:当我向 REST 服务发送 POST 请求时,我收到 Access-Control-Allow-Origin 错误,但请求 GET 它正在工作。

这是我的休息服务:

@Path("/createUser")
@RequestScoped
public class ClientRestService {

@Inject
private ClientManager clientManager;

@POST
@Path("{name}/{surname}/{adress}")
@Produces(MediaType.APPLICATION_JSON)
public Response createUser(@PathParam("name")String name,  @PathParam("surname")String surname, @PathParam("adress")String adress) {
    Client client = new Client(name,surname,adress);


    Response.ResponseBuilder builder = Response.ok("POST It's working.!!!");
    builder.header("Access-Control-Allow-Origin", "*");
    builder.header("Access-Control-Allow-Methods", "POST");
    return builder.build();
}

@GET
public Response getMetod() {
    Response.ResponseBuilder builder = Response.ok("GET It's working.");
    builder.header("Access-Control-Allow-Origin", "*");
    return builder.build();
}
}

这是客户:

$(document).ready(function() {

$.ajax({
    url: 'http://localhost:8080/Bank_Project_Test/MyApp/createUser',
    type: 'POST',
    data: 'name=SomeName'+
        '&surname=SomeSurname'+
        '&adress=SomeAdress', 
    success: function(success) {
        alert(success); 
    }
});
});

【问题讨论】:

标签: java javascript rest


【解决方案1】:

可能会因为 cors 预检请求而失败?

如果您在失败时在浏览器中看到OPTIONS-method 请求,那么您还需要在服务器实现中处理这些请求。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests

【讨论】:

    猜你喜欢
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2016-03-08
    • 1970-01-01
    相关资源
    最近更新 更多