发送正确的XMLHttpRequest标头

时间:2014-10-06 14:52:21

标签: javascript header xmlhttprequest

我试图制作一个优秀的wifi芯片(esp8266)与HTML网页进行通信。

因此我使用XMLHttpRequest。我知道我必须设置Access-Control-Allow-Origin才能让它工作..

我仍然在控制台中收到错误:

XMLHttpRequest无法加载http://x.x.x.x:8000/。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' null'因此不允许访问。

所以wifi模块正在发送这个标题:

WIFI MODULE RESPONSE

HTTP/1.1 200 OK\r\n
Access-Control-Allow-Origin: *\r\n
Content-Type: text/html\r\n
Hello world!\r\n

然后我试图通过网页访问它:

javascipt的

var xmlhttp;

function loadXMLDoc(){
    xmlhttp=new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        console.log("readystate " + xmlhttp.readyState);
        console.log("status " + xmlhttp.status);
        console.log(xmlhttp.getAllResponseHeaders());
        console.log(xmlhttp.responseText);

        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            console.log(xmlhttp.responseText);
            //document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","http://192.168.1.101:8000",true);
    xmlhttp.send();
    //console.log("status " + xmlhttp.status);
}

function send() {
    xmlhttp.send("jooooo");
}

loadXMLDoc();

很抱歉,但无法举例说明,因为它在本地运行。

也许有人可以给我一个调试方法?

更新

我可以在Chrome中观看标题。 \ r \ n显示在标题中。我可以发送200或404状态。但现在我必须找出如何发送return语句。 View HTTP headers in Google Chrome?

所以在我的chrome控制台中,我得到了标题: " 200 OK \ r \ n \ r \ nOrigin:test \ r \ nAccess-Control-Allow-Origin:* \ r \ n \ r \ nContent-Type:text / html \ r \ n \ r \ nHello !世界\ r \ n \ r \ n"

使用普通页面,我看到200 OK。所以\ r \ n不起作用....我必须找出如何发送return语句。当我将200设置为404时,我找不到页面。所以第一部分就收到了......

1 个答案:

答案 0 :(得分:0)

好的,我删除了\ r \ n字符。

我只是通过单独的串行通信发送标题。

我成功发送: HTTP / 1.1 200好的 Access-Control-Allow-Origin:* 内容类型:text / html

响应将在javascript中加载..