Re: php/ajax question
| From: | Mark Kelly | Date: | Sat, 30 Dec 2006 23:02:35 +0000 |
| Subject: | Re: php/ajax question | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-246300@lists.php.net to get a copy of this message | ||
On Saturday 30 December 2006 18:56, tedd wrote:
> Why can't the php script redirect the browser when called via ajax ?
The browser will not be expecting a page back, and will ignore headers. The
response must be handled by a function you define.
For the sake of a quick demo, if your php accepts an action via GET and
simply prints the location for the redirect, you can do it at the client
end.
// example code
function createRequest() {
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = null;
}
}
}
if (request == null) alert("Error creating request object!");
}
function sndReq(action) {
createRequest();
var url = "a.php?action=" + action + "&dummy=" + new Date().getTime();
// random stuff at the end is hack to get round browser response cacheing
request.open("GET",url);
request.onreadystatechange = updateReq;
request.send(null);
}
function updateReq() {
if (request.readyState == 4) {
var newLocation = request.responseText;
window.location = newLocation;
}
}