[英]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.