AJAX with Safari
Mental note to myself:
When making a POST request with XMLHttprequest and Safari(v2.0.4), always generate some content for the browser.
If not, the status will always be undefined.
example:
if (!$mysqli->query($insert)) {
trigger_error("error writing data: ".$insert);
exit;
}
else {
echo "0";
}
This costed me some hours pulling my hair….
The following javascript works like a charm when you return a “0″ at the end of the php file called with POST. If you don’t return anything, Safari will decide that the HTTP headers are undefined and thus call the error handler.
KwAjax.ContentLoader.onReadyState=function(){
var req=this.req;
var ready=req.readyState;
if (ready==KwAjax.READY_STATE_COMPLETE){
var httpStatus=req.status;
if (httpStatus == 200 || httpStatus == 0) {
this.onload.call(this);
}
else {
this.onerror.call(this);
}
}
}
Posted by: Merlijn on Friday, 15 of December , 2006 at 13:03
Tags: AJAX, javascript, safari, XMLHttprequest
Categories: Coding, OS X
Comments: be the first (opens in a pop-up window)
Add this post to del.icio.us or digg it
Tags: AJAX, javascript, safari, XMLHttprequest
Categories: Coding, OS X
Comments: be the first (opens in a pop-up window)
Add this post to del.icio.us or digg it