小编And*_*vin的帖子

在 JavaScript 中发送带有正文的 GET 请求 (XMLHttpRequest)

我必须与从 GET 请求正文中获取参数的 API 进行交互。我知道这可能不是最好的主意,但它是 API 的构建方式。

当我尝试使用 构建查询时XMLHttpRequest,看起来负载根本没有发送。您可以运行它并查看网络选项卡;请求已发送,但没有正文(在最新的 Chrome 和 Firefox 中测试):

const data = {
  foo: {
    bar: [1, 2, 3]
  }
}
const xhr = new XMLHttpRequest()
xhr.open('GET', 'https://my-json-server.typicode.com/typicode/demo/posts')
xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8')
xhr.send(JSON.stringify(data))
Run Code Online (Sandbox Code Playgroud)

诸如 axios 之类的库是基于 XMLHttpRequest 构建的,因此它们也无法正常工作...

有没有办法在 JavaScript 中实现这一点?

javascript ajax rest xmlhttprequest http-get

18
推荐指数
1
解决办法
2万
查看次数

WebSocket通过SSL与Apache反向代理

在客户端,我正在尝试建立wss连接:

var ws = new WebSocket("wss://wsserver.com/test")

它会返回一个错误:

WebSocket connection to 'wss://wsserver.com/test' failed: Error during WebSocket handshake: Unexpected response code: 400

完整的标题是:

请求标题

GET wss://wsserver.com/test HTTP/1.1
Host: wsserver.com
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: https://website.net
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: en-US,en;q=0.8
Sec-WebSocket-Key: Tj9AJ5TKglNf5LoHsQTpvQ==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Run Code Online (Sandbox Code Playgroud)

响应标题

Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:https://website.net
Connection:close
Content-Length:18
Content-Type:text/plain; charset=utf-8
Date:Fri, 21 Apr 2017 21:03:45 GMT
Server:Apache/2.4.18 (Ubuntu) …
Run Code Online (Sandbox Code Playgroud)

apache ssl proxy reverse-proxy websocket

6
推荐指数
2
解决办法
1万
查看次数