如果XMLHttpRequest调用的页面不是有效的XML(譬如不是明文),上面的代码行:
- var http_request = false;
- function makeRequest(url) {
- http_request = false;
- if (window.XMLHttpRequest) { // Mozilla, Safari,...
- http_request = new XMLHttpRequest();
- if (http_request.overrideMimeType) {
- http_request.overrideMimeType('text/xml');
- }
- } else if (window.ActiveXObject) { // IE
- try {
- http_request = new ActiveXObject("Msxml2.XMLHTTP");
- } catch (e) {
- try {
- http_request = new ActiveXObject("Microsoft.XMLHTTP");
- } catch (e) {}
- }
- }
- //detail...
- }
http_request.overrideMimeType('text/xml');就会导致Firefox 1.5b里面出现Javascript 控制台错误信息.如果浏览器上出现了"语法错误"或者"不规范的错误",而且不是试图从XMLHttpRequest加载XML页面,请从代码中删除该行。
另外,如果把请求发送到将返回XML的一段代码,而不是发送到静态的XML文件,要是页面在Mozilla和IE浏览器中都能正常工作,就必须设置一些响应头.如果没有设置头:"Content-Type: application/xml",IE会在试图访问XML元素的那一行后面抛出Javascript错误:"Object Expected".如果没有设置头:"Cache-Control: no-cache",浏览器就会缓存响应,永远不会重新提交请求.这样一来,调试起来就会难度很大.