【问题标题】:provlem with ajax returning the whole html codeajax返回整个html代码的问题
【发布时间】:2013-05-11 03:09:58
【问题描述】:

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

【问题讨论】:

  • 您已将此标记为 jquery。你不会使用api.jquery.com/jQuery.ajax 来发出ajax 请求吗?
  • 你为什么不使用 jauery.ajax ??
  • 非常感谢大家帮助我,它已经解决了。
  • 请使用答案前面的复选框将答案标记为已解决。
  • @jq 初学者尝试提及它是如何解决的或接受答案,以便对遇到相同问题的其他人有所帮助。干杯!

标签: php jquery ajax


【解决方案1】:

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

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

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

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

header('Content-type: text/json');

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 2011-05-23
      • 1970-01-01
      • 2013-05-02
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      相关资源
      最近更新 更多