来自javascript的HTTP请求使用包括标头的原始消息
我知道如何使用jQuery或XMLHttpRequest从javascript向我的REST api发出HTTP请求。 我现在要做的是在不设置标题值属性的情况下发出请求。 HTTP请求消息包括:
- 请求行,例如GET /images/logo.png HTTP / 1.1,它从服务器请求名为/images/logo.png的资源
- 标题,例如Accept-Language:en
- 空行
- 可选的邮件正文
对我的api的请求应该是这样的:
GET /myapi/myresource/1234 HTTP/1.1 Host: localhost:51127 Content-Type: application/x-www-form-urlencoded Accept: application/json, text/csv Authorization: Basic
我想打开一个到localhost的连接:51127,发送上面的文字,然后得到回复。 这可能在JavaScript中?
更新:我知道如何设置标头。 我只想以不同的方式做到这一点。 有很多方法可以“构建”包含标题的请求并发送它。 我只是想手动构建它。
Javascript中没有套接字支持。 您只能使用XMLHTTPRequest
包装器或可选的包装器(如jQuery.ajax
来构建HTTP查询。 这是出于各种好的理由,主要是安全性。
您可以获取HmlHttpRequest对象的实例并使用setRequestHeader。
jQuery有一个beforeSend处理程序,你可以设置它来获取实际的hxr对象。
$.ajax({ beforeSend: function(xhr){ xhr.setRequestHeader("name","value"); } ... })