Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript springMVC中的Ajax调用总是返回错误_Javascript_Jquery_Ajax_Spring Mvc - Fatal编程技术网

Javascript springMVC中的Ajax调用总是返回错误

Javascript springMVC中的Ajax调用总是返回错误,javascript,jquery,ajax,spring-mvc,Javascript,Jquery,Ajax,Spring Mvc,Ajax调用: $.ajax({ type:'post', url:'https://hybris.local:9002/store/verify?productCodePost='+productid, data : {notifyemail : notifyemail}, dataType : "text", success : successmethod, error : function(data,

Ajax调用:

$.ajax({
    type:'post',
        url:'https://hybris.local:9002/store/verify?productCodePost='+productid,
        data : {notifyemail : notifyemail},
        dataType : "text",
        success : successmethod,

        error : function(data, status) {
            //alert("Error  "+status);

            $('#showbecomepartnerMessage').show();

         }
 });

alert("test values are"+notifyemail); 

document.getElementById('notifyemail').value='';

}

function successmethod(data) {

    if (data != null) {
        alert('Success');
        $('#showemailMessage').show();
    } else {
        alert('Error');
    }

}
控制器:

@RequestMapping(value = "/verify", method = RequestMethod.POST, produces = "application/json")
    public String verifyEmail(@RequestParam("productCodePost") final String code, final Model model,
            @Valid final AddToCartForm form)
    {


        System.out.println("Inside Verify method");
        final String email = form.getNotifyemail();
        System.out.println("Email is " + email);
        System.out.println("Product code is== " + code);
        final Boolean status = true;

        if (email != null)
        {

            System.out.println("Email id is" + email);

            notifyStockEmail(email, code);


        }


        if (status.booleanValue())
        {
            System.out.println("value of Boolean " + status.booleanValue());
            //return "success";
            model.addAttribute("success", "success");
        }
        else
        {

            //return "fail";
            model.addAttribute("error", "error");
        }
        return "success";
    }

在上面的代码中,我正在执行一个ajax调用并调用一个控制器'/verify',从控制器返回一个布尔值作为true,但每次错误方法都是在jsp中执行的,而不是success方法。那么,我如何通过如上所述从控制器传递true值来调用success方法呢?如果有任何帮助,我们将不胜感激。

尽管您的断言时,您不会返回布尔值。您正在将一些名为“success”和“error”的字符串属性放入模型中,并转发到名为success的视图,该视图可能不存在,也可能不存在

如果您只是想将布尔值true | false写入响应流,那么您可以按如下操作

添加@ResponseBody注释:

@RequestMapping(value = "/verify", method = RequestMethod.POST, produces = "application/json")
public @ResponseBody boolean verifyEmail(@RequestParam("productCodePost") final String code, final Model model,
            @Valid final AddToCartForm form){

   boolean status = false;

   //check and set status.

   return status;
}
见:

此注释可以放在方法上,并指示返回 类型应该直接写入HTTP响应主体,而不是 放置在模型中,或解释为视图名称

请试试这个:

@RequestMapping(value = "/verify", method = RequestMethod.POST)
public @ResponseBody String verifyEmail(@RequestParam("productCodePost") final String code) {

    //do what you want and return your status
    return "OK";
}
您的ajax调用应该类似于:

$.ajax({
    type:'post',
        url:'https://hybris.local:9002/store/verify?productCodePost='+productid
 }).success(function(data) {
  successmethod(data);
});

服务器返回的错误是什么?您是否使用spring security保护应用程序?@David Inside console中返回的值为true..但在ajax函数中,它正在调用错误方法…@melli-182否我没有使用spring security保护..@User2413 ok!我认为可能是数据类型不兼容,请尝试从调用中删除数据类型参数。您能否详细说明状态代码,因为它显示了初始化布尔变量的错误,…final boolean status=false;如果是电子邮件!=null{System.out.printlnEmail id为+email;notifyStockEmailemail,代码;}如果状态为{model.addAttributestatus,成功;}否则{//返回失败;model.addAttributestatus,错误;}返回状态;这是设置状态的正确方法吗@Alan HayHere如何将数据“data:{notifyemail:notifyemail}”发送给控制器??