ajax返回整个html代码的问题

时间:2013-05-16 09:33:10

标签: php jquery ajax

我试图通过ajax获取一些数据

var ajax1 = false;
ajax1 = new XMLHttpRequest();
ajax1.open("GET","ajax/getolinedata.php");
ajax1.onreadystatechange = function(){
    var mylink = ajax1.responseText;
    $("a[goal='online']").attr("href",mylink);
}
ajax1.send(null);

这是返回数据的php代码

    while($cartRow = mysql_fetch_array($getCartR)){
    $pro_name = $cartRow['Product_Name'];
    if(strstr($pro_name," ")){
        $pro_name = str_replace(" ","_",$cartRow['Product_Name']);
    }
    $lin .= "&li_".$x."_type=product&li_".$x."_price=".$cartRow['Product_Price']."&li_".$x."_quantity=".$cartRow['Quantity']."&li_".$x."_name=".$pro_name."&li_".$x."_tangible=N";
    $x++;
}
echo $lin;

但结果就是这个

<a href="&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-Transitional.dtd&quot;&gt;&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;/&gt;&lt;/head&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;https://www.2checkout.com/checkout/purchase?sid=123456&amp;mode=2CO&amp;li_0_type=product&amp;li_0_price=3700&amp;li_0_quantity=1&amp;li_0_name=iphone_4&amp;li_0_tangible=N&amp;li_1_type=product&amp;li_1_price=3000&amp;li_1_quantity=1&amp;li_1_name=Lumia_720&amp;li_1_tangible=N&amp;li_2_type=product&amp;li_2_price=4500&amp;li_2_quantity=1&amp;li_2_name=ipad_2&amp;li_2_tangible=N&amp;li_3_type=product&amp;li_3_price=2000&amp;li_3_quantity=2&amp;li_3_name=Lumia_520&amp;li_3_tangible=N" goal="online"><img src="images/online.jpg"></a>

它返回整个html,而那个php页面中没有HTML代码,只是php代码连接到数据库并获取数据任何帮助?

2 个答案:

答案 0 :(得分:3)

在ajax / getolinedata.php中如果你有html代码或echo html代码,它也会返回HTML代码。

尝试直接在浏览器上打开ajax / getolinedata.php。如果您获得HTML页面,则会将相同内容发送到ajax请求。

因此,尝试只回显所需的信息,你应该做得很好。

另外不要忘记在标题中设置响应类型。例如,如果要返回json数据,请使用:

标题('Content-type:text / json');

答案 1 :(得分:0)

确定您没有在配置文件或构造函数中打印html或类似的东西。 我遇到了同样的问题。 解决方案是创建单独的文件来处理ajax请求。