0

我有一个链接,它向带有一些数据的特定 url 发送 ajax 请求。ajax url 的目的地做一些操作并返回数据。现在我有一个问题,ajax 响应也包含所有的 html。一些我无法禁用布局或 html 之类的东西。现在你能告诉我如何完成这项任务吗?是否有一种火箭科学的方法可以从 ajax 响应中获取特定数据。

我从这里得到了一个想法,我将在一些 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 :-(

此致

4

2 回答 2

0

使用 ajax json 响应

$.ajax({


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

}
});
于 2013-01-01T09:43:57.783 回答
0

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

此外,如果您希望从 javascript ajax 成功函数的响应中删除一些 html 内容,那么我建议您将所需的响应包装在 html 注释周围。例如:<!--AjaxResponseStart-->...<!--AjaxResponseEnd-->。然后它只是使用一些检查(对于未定义)和正则表达式来仅获取所需内容的问题:

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

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

希望你明白我想说的话。

于 2013-01-01T09:53:48.710 回答