用jquery $.ajax 请求后台老是url %5Bobject%20Object%5D而报404错误,为啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用jquery $.ajax 请求后台老是url %5Bobject%20Object%5D而报404错误,为啥?相关的知识,希望对你有一定的参考价值。

参考技术A $.Post() 方法的格式不是这样写.
$.Post() 的方法是不需要指明异步参数的.
如果按照你希望的格式写, 那应该改为$.ajax.
$.ajax(
url:url,
data:id:id,
success:function(data,textStatus)
alert(data["resultMessage"]);

);

今天遇到这个问题,正好解决了. 顺便回复下作者, 虽然是3年前的贴, 但似乎没人答出来.
参考技术B jquery版本过低 参考技术C 404就代表找不到页面,可能是你ajax提交的url写错了。ajax的完整代码贴出来看看。追问

url = 'delete.do'

$.post(
url:url,
data:id:id,
success:function(data,textStatus)
alert(data["resultMessage"]);

);

追答

你单独访问以下delete.do能访问到吗?这个action可能有问题。

用jquery的ajax,前后后台应该如何写

用的S2SH,谁能帮我写个例子,感激不尽

前台:

jQuery.ajax( 
type : 'POST',
url : '/cloud-web/getMember.htm',
cache: false,
data : "groupId": groupid,
dataType : 'json',
success : function(data) 
//成功后回调回来所执行的代码
        error: function(data)
        
);

后台:

@RequestMapping(value = "/getMember")
    @ResponseBody
    public List<TUserInfo> getMember(HttpServletRequest request, HttpServletResponse response, HttpSession session) 
        String groupId = request.getParameter("groupId");
        Object user = session.getAttribute(USER_ID);
        if (null != user) 
            if (groupId != null && groupId.length() != 0) 
                return chatService.getUserByGroupid(Integer.parseInt(groupId));
             else 
                return null;
            
         else 
            return null;
        
    

这里面当然还有很多地方需要配置,这个是一个简单的例子,我直接贴给你,后台用的是spring

参考技术A <%--预警规则添加处理begin--%>
  function addRule() 
//指标
var iid = $("#showIndicator").combobox("getValue");
//周期
var aid = $("#showPeriod").combobox("getValue");
//描述
var ds = $("#showRuleDesc").val();
$.ajax(
type : "POST",
url : "addRule.action",// 请求的url
data : 
"indicatorId" : iid,
"alarmPeroidsTypeId" : aid,
"ruleDesc" : ds
,
dataType : "json",
success : function() 
$.messager.alert("提示","保存成功!");
$("#addRuleDiv").dialog("close");
,
error : function() 
alert("错误!");

);

  
  <%--预警规则添加处理end--%>

    /**
     * 添加预警信息
     * @see [类、类#方法、类#成员]
     */
    public void addRule()
    
        AlarmRules rule = new AlarmRules();
        long num = System.currentTimeMillis();
        ruleId = "R" + num;
        rule.setAlarmRuleId(ruleId);
        rule.setAlarmPeriodsTypeId(alarmPeroidsTypeId);
        rule.setAlarmIndicatorId(indicatorId);
        rule.setAlarmRuleDesc(ruleDesc);

        //添加数据
        ruleConfigService.insertRules(rule);
    

追问

后台这看不懂

追答

你用了strust框架啊,action的形式就类似于一个JavaBean有私有变量和get,set方法,页面传参你可以直接获得,非常方便

    /*
     * 指标id
     */
    private String indicatorId;
    
    /*
     * 周期类型id
     */
    private String alarmPeroidsTypeId;
    
    /*
     * 规则描述
     */
    private String ruleDesc;
    
    public String getRuleDesc()
    
        return ruleDesc;
    
    public void setRuleDesc(String ruleDesc)
    
        this.ruleDesc = ruleDesc;
    
     public String getAlarmPeroidsTypeId()
    
        return alarmPeroidsTypeId;
    
    public void setAlarmPeroidsTypeId(String alarmPeroidsTypeId)
    
        this.alarmPeroidsTypeId = alarmPeroidsTypeId;
    
    public String getIndicatorId()
    
        return indicatorId;
    
    public void setIndicatorId(String indicatorId)
    
        this.indicatorId = indicatorId;
    

感觉你对框架好像不会用的样子啊...

参考技术B 人家后台没写全么,前台带的参数自动set到了类的属性里面,方法里直接拿来用了么...

以上是关于用jquery $.ajax 请求后台老是url %5Bobject%20Object%5D而报404错误,为啥?的主要内容,如果未能解决你的问题,请参考以下文章

JQuery 中ajax请求为啥总不到后台 浏览器可以正常访问后台 求解!!!

jQuery ajax post提交本页面处理,为啥提交后URL还携带参数

jQuery的ajax详解

jquery-ajax请求.NET MVC 后台

前台ajax请求php后台返回成功却进error方法解决

Jquery AJAX 简单实现前台后台互传数据