【问题标题】:Send the right XMLHttpRequest header发送正确的 XMLHttpRequest 标头
【发布时间】:2016-10-06 16:26:26
【问题描述】:

我正在尝试制作一个很棒的 wifi 芯片 (esp8266) 来与 HTML 网页进行通信。

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

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

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

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

WIFI 模块响应

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 状态。但现在我必须弄清楚如何发送退货声明。 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 world!\ r\n\r\n"

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

【问题讨论】:

  • Access-Control-Allow-Origin: "*" 语法错误。它不应包含引号。
  • 好的。肿瘤坏死因子。也许我已经试过了。但我会再试一次
  • 嗯试过没有。但不工作。
  • 响应头,也是空的:console.log(xmlhttp.getAllResponseHeaders());
  • 这不是一个解决方案,只是一个注释。

标签: javascript header xmlhttprequest


【解决方案1】:

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

我只是将标头与串行通信分开发送。

我成功发送: HTTP/1.1 200 正常 访问控制允许来源:* 内容类型:text/html

并且响应将被加载到 javascript..

【讨论】:

    猜你喜欢
    • 2017-03-23
    • 2017-12-20
    • 1970-01-01
    • 2019-04-29
    • 2020-02-21
    • 2011-10-26
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多