1

我正在尝试通过 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 代码有什么帮助吗?

4

2 回答 2

3

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

尝试直接在浏览器上打开 ajax/getolinedata.php。如果你得到 HTML 页面,那么同样会被发送到 ajax 请求。

所以,试着只回显需要的信息,你应该很好。

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

header('内容类型:文本/json');

于 2013-05-16T09:40:11.263 回答
0

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

于 2014-05-04T15:30:08.027 回答