使用XMLHttpRequest中的特定URL,返回NetworkError:发生网络错误

时间:2017-09-11 06:02:41

标签: javascript php .htaccess url-rewriting xmlhttprequest

var xmlhttp = new XMLHttpRequest;
if (!xmlhttp) {
    alert ("XMLHttpRequest create error");
}
xmlhttp.open ("GET", "http://127.0.0.10/advert/123", false);
xmlhttp.onreadystatechange = function () {

    if (xmlhttp.readyState == 4) {
        console.log (xmlhttp.status);
        if (xmlhttp.status == 200) {
            console.log (xmlhttp.responseText);
        } else {
            alert ("Error");
        }
    }
};
xmlhttp.send ();

具体的网址是' // host / advert / ???'。像:

// 127.0.0.12/advert/123

// 127.0.0.12/advert/test

还有更多......

只有使用这样的Url,才会出现错误。

特定的URL env是PHP + APACHE(重写),代码如下:

的index.php

echo 123;
exit;

的.htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

1 个答案:

答案 0 :(得分:0)

您正在混合使用同步和异步请求。

如果你将false作为第三个参数传递给open方法,意味着请求应该是同步的(为什么,顺便说一句?),那么你应该像这样处理它:

xmlhttp.open("GET", "http://127.0.0.10/advert/123", false);
xmlhttp.send(null);

if (xmlhttp.status === 200) {
  console.log(xmlhttp.responseText);
}

其他信息:Synchronous and asynchronous requests