【问题标题】:ajax call from pure javascript not returning response from remote php file(no jQuery)来自纯 javascript 的 ajax 调用不返回来自远程 php 文件的响应(没有 jQuery)
【发布时间】:2013-03-14 03:08:02
【问题描述】:

我正在使用纯 javascript 对驻留在 远程服务器 中的 PHP 文件进行 ajax 调用。但它没有返回响应。

进行 ajax 调用的页面在我的 localhost 中。

这里是ajax调用代码:

if (window.XMLHttpRequest) {
        xmlhttp=new XMLHttpRequest();
    }
    else{
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function(){
        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            if(xmlhttp.responseText == 1){
                document.getElementById("update").innerHTML = "Update Successfull";
            }
        }
    }
    //https://flo2go-airteliptv.rhcloud.com
    xmlhttp.open("POST",'https://xyz.com/purchasereturn.php',true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.send("setflag=1");

远程服务器上的PHP代码是这样的:

<?php
header('content-type: application/javascript; charset=utf-8');
    $purchasevalue = 0;
    while($purchasevalue != 1){
        $query = "SELECT * FROM purchase WHERE purchase_id = 1";
        $result = mysql_query($query);
        while($row = mysql_fetch_array($result)){
            $purchasevalue = $row['purchase_flag'];
        }
    }
    //$purchasevalue = "{purchase:$purchasevalue}";
    echo $purchasevalue;
?>

我怎样才能得到响应?请帮忙。

【问题讨论】:

  • 您是否尝试过使用浏览器开发工具查看发生了什么?
  • 还有为什么要把content-type设置成js?

标签: php javascript ajax http-headers cross-domain


【解决方案1】:

你为什么问if(xmlhttp.responseText == 1){ xmlhttp.responseText 是实际响应,我看到你返回 json 所以它永远不会返回 1 所以它永远不会进入 if

【讨论】:

  • 不发送 - 检索! javascript 代码 document.getElementById("update").innerHTML = "Update Successfull"; 永远不会发生,因为 responseText 不是 1 - 它是一个 json
  • 好的 - $purchasevalue 的价值是多少 - 尝试在检查器中查看您从服务器返回的内容(可能您的数据库有错误或其他东西......)
  • 不,数据库中没有错误,因为我直接执行 PHP 文件并返回 1。顺便说一下,$purchasevalue 将是 1。
  • 所以你的代码现在没有任何问题 - 我在我的服务器上本地测试了它 - 我的 php echo 是 1 - 它工作正常。如果不适合你,请发布整个周期包括 html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-15
  • 1970-01-01
相关资源
最近更新 更多