无法使用post方法发送跨域ajax请求

时间:2014-07-30 07:22:28

标签: jquery ajax json spring-mvc cross-domain

我用spring mvc编写了休息服务:

@RequestMapping(value = "/login", headers="Accept=*/*", method = RequestMethod.POST,
        produces="application/json")
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public UserLoginedVO findUsByPass(HttpServletResponse response, 
        @RequestBody UserLoginCO userco) throws Exception{

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

    UserLoginedVO usVO = userService.findUsByPass(userco.getUsername(), userco.getPassword());
    return usVO;
}

用邮递员测试,它返回正确的结果 我通过jquery调用此服务,如下所示:

var json = {"username":"giau", "password":"1234"};

$.ajax({
            data: JSON.stringify(json),
            url: 'http://192.168.1.119:8080/mos/api/users/login',
            type: 'POST',
            dataType: 'json',
            contentType:"application/json", 
            crossDomain:true,
            async:false,
            success:function(data)
            {
               alert("Data from Server"+JSON.stringify(data));
            },
            error:function(jqXHR,textStatus,errorThrown)
            {
               alert("You can not send Cross Domain AJAX requests: "+errorThrown);
            }
        }).done(function(data){
            alert("aaaaaa");
        });

我收到错误:

  

XMLHttpRequest无法加载    请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许原点'null'访问。

     

阻止跨源请求:同源策略禁止读取远程资源可以通过将资源移动到同一域或启用CORS来修复此问题。

虽然我使用crossDomail:true

,但这不允许将json后的数据用于跨域服务

我该如何解决这个问题?

0 个答案:

没有答案