在jquery中单击提交按钮时,进行了以下ajax调用,但其成功功能不起作用。
$.ajax({
url: "hai.htm",
type: "POST",
dataType: "application/json",
data:{
name:name,
pass:pass,
},
success: function (data) {
alert("success");
var obj = JSON.parse(data);
alert(obj[0].name);
}
error: function (error) {
alert('error; ' + eval(error));
console.log(error);
}
})
控制器类图像显示在这里
我的控制器类是
package com.safecare.spring;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class controller {
@RequestMapping(value = "hai")
public @ResponseBody Map hai(@RequestParam(value = "name",required = false) String name,@RequestParam(value = "pass",required = false) String pass) {
Map ma=new HashMap();
ma.put("name", name);
ma.put("pass", pass);
System.out.println(name);
return ma;
}
}
错误消息如下:
“该请求所标识的资源仅能够生成具有根据请求“接受”标头不可接受的特征的响应。”
最佳答案
尝试这个
@Controller
@RequestMapping("/controllerName")
public class Controller{
@RequestMapping(value="/hai", ... )
public @ResponseBody String hai( ... ) {
JSONObject obj = new JSONObject();
obj.put("name", name);
obj.put("pass", pass);
return obj.toString();
}
}
然后将您的ajax更新为
$.ajax({
url: "/ContextPath/controllerName/hai",
type: "POST",
dataType: "json",
data:{
name:name,
pass:pass,
},
success: function (data) {
alert("success");
alert(data.name);
},
error: function(){
alert("Error");
}
});
在网址中,将“ / ContextPath”替换为上下文路径。