繁体   English   中英

javascript,php,ajax-AJAX响应始终为空

[英]javascript, php, ajax - AJAX response is always empty

祝大家有美好的一天。 我有流动的问题。

我有2个域。 在一个域上,我向另一个域发送ajax帖子,并期待一些结果。 问题在于响应始终为空。 如果我检查了net选项卡,请求看起来就没问题(发布数据很好),它没有收到任何错误,它结束了(我在handle响应函数上发出了警报,以检查响应是什么)。 我尝试将请求发送到随机域(例如example.com),以查看是否收到任何内容。 响应是相同的……没有。

这是我使用的脚本:

    function sendReqPost(url) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
            // set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      //http_request.onreadystatechange = handleResponseAccept;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close"); 
      //parameters is a global variable with the post data.     
      http_request.send(parameters);
    }

我仔细检查了脚本中的所有内容...我还在请求的php页面中插入了回声,以查看是否得到了任何东西。 无论我做什么,反应都是空的。 PS在另一个域上,ajax脚本运行良好。 一模一样。

我有2个域。 在一个域上,我向另一个域发送ajax帖子,并期待一些结果。

有你的问题。 这是由于JavaScript中的同源策略 那就是为什么...

...在另一个域上,ajax脚本运行良好。

但是,有一些变通方法称为Cross Domain Ajax

为了满足您的需求,由于您显然需要HTML而不是JSON,我建议使用一个小的PHP脚本从其他域获取内容并将其转发给客户端。 这将称为Ajax代理

看到这个问题

我看不到您的http_request.responseText ,它返回了请求URL中echo的内容。

因此,请尝试添加以下内容:

http_request.onreadystatechange = function () {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            alert(http_request.responseText);
        } else {
            alert("An error occurred: "+ http_request.statusText);
        }
     }
};

之前:

//parameters is a global variable with the post data. 

看看是否可行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM