Javascript 如何禁用';有证书';在HTTP标头中包含node.js和请求包?
使用node.js和来自浏览器(via)的包,我使用CORS在单独的域上执行httpget请求 在服务器上,当我将Javascript 如何禁用';有证书';在HTTP标头中包含node.js和请求包?,javascript,node.js,http,xmlhttprequest,request,Javascript,Node.js,Http,Xmlhttprequest,Request,使用node.js和来自浏览器(via)的包,我使用CORS在单独的域上执行httpget请求 在服务器上,当我将'Access-Control-Allow-Origin'设置为通配符'*'时,客户端出现以下错误: XMLHttpRequest无法加载。。。。不能在中使用通配符“*” 启用凭据标志时的“访问控制允许来源”标题 对。因此,不允许访问源“…” HTTP请求标头如下所示: Accept:*/* Accept-Encoding:gzip,deflate,sdch Accept-Langu
'Access-Control-Allow-Origin'
设置为通配符'*'
时,客户端出现以下错误:
XMLHttpRequest无法加载。。。。不能在中使用通配符“*”
启用凭据标志时的“访问控制允许来源”标题
对。因此,不允许访问源“…”
HTTP请求标头如下所示:
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,ja;q=0.6
Access-Control-Request-Headers:withcredentials
Access-Control-Request-Method:GET
Cache-Control:no-cache
Connection:keep-alive
Host:localhost:3000
Origin:http://localhost:9966
Pragma:no-cache
Referer:http://localhost:9966/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
很明显,问题是访问控制请求头:头中有凭证,对吗
为了能够删除此项,我需要将“XMLHttpRequest”对象的“withcredentials”属性设置为“false”。但是,我无法确定node.js或请求包在何处创建“XMLHttpRequest”对象,以及如何访问该对象
谢谢。经过一些调查,我发现with credentials
设置可以通过选项参数对象传入:
var req = http.request({
withCredentials: false
}, function(res) {
//...
});
req.end();
如果未定义
,默认设置为true
参考http browserify/lib/request.js
来源:
if (typeof params.withCredentials === 'undefined') {
params.withCredentials = true;
}
try { xhr.withCredentials = params.withCredentials }
catch (e) {}
它不在文档中,但是看看
request
使用httpbrowserify
的方式,我认为您应该能够执行req.withCredentials=false在调用之前编写或结束@loganfsmyth谢谢您的帮助!它把我引向了正确的方向。答案贴在下面。