首页 文章

如何从ajax响应中获取特定数据

提问于
浏览
0

我有一个链接,使用一些数据向特定的URL发送ajax请求 . ajax url的目标执行一些操作并返回数据 . 现在我有一个问题,即ajax响应也包含所有的html . 一些我怎么不能禁用布局或html之类的东西 . 现在你能告诉我怎么做这个任务 . 是否有一种火箭科学方法可以从ajax响应中获取特定数据 .

我从here得到了一个想法,我将在一些html元素中发送我的响应,然后我将获得该html元素 . 但这看起来非常糟糕 . 到目前为止,我所尝试的是这个

$.ajax({
        url : "<?php echo $this->url(array('controller'=>'index','action'=>'ajaxcall','name'=>'shahrukh','id'=>377),'default');?>",
        type: "post",
        data: {car: 'Honda' },

        success: function(data){

           var $response=$(data);

           var oneval = $response.filter('#one').html();
           alert(oneval);
      }});

在服务器端我只是这样做

echo "<div id='one'>Ajax response</div>";

有没有其他方法来做到这一点...顺便说一下它也返回undefined :-(

最好的祝福

2 回答

  • 0

    使用ajax json响应

    $.ajax({
    
    
    url:"sdsdds.jsp",
    dataType:'json',
    success:function(jsonDataFrmServer){
    alert(jsonDataFrmServer.myCUstomData);
    alert(jsonDataFrmServer.whateverContentForHtml);
    
    }
    });
    
  • 0

    在服务器端,您始终可以检查标头 HTTP_X_REQUESTED_WITH 以检测ajax请求 . 然后根据该条件,您可以切换响应的内容 .

    此外,如果您希望从javascript ajax成功函数中的响应中删除一些html内容,那么我可以建议您围绕html注释包装所需的响应 . 例如: <!--AjaxResponseStart-->...<!--AjaxResponseEnd--> . 然后它只是使用一些检查(对于undefined)和正则表达式只获得所需的内容:

    以下是如何从响应中获取html内容的示例:

    pattern = /[\s\S]*?<\!--AjaxResponseStart-->([\s\S]*)<\!--AjaxResponseEnd-->[\s\S]*/i;
    if(str.match(pattern)){
      return reponse.replace(pattern, '$1');    
    }
    

    希望你得到我想说的话 .

相关问题