在指定端口时,XMLHttpRequest是否从URL中剥离凭据?

时间:2014-05-13 20:57:45

标签: javascript url xmlhttprequest http-basic-authentication

我有以下代码:

var url = 'http://will:secret@localhost:5984/wells/_design/reading/_view/by_time'
var xmlHttp = new XMLHttpRequest()
xmlHttp.open( 'GET', url, false )
xmlHttp.send( null )
console.log( xmlHttp.responseText )

当我运行它时,我收到以下错误:

GET http://localhost:5984/wells/_design/reading/_view/by_time 401 (Unauthorized)

当我从网址中省略端口时,出现错误:

GET http://will:secret@localhost/wells/_design/reading/_view/by_time 404 (Not Found)

请注意,凭据将从第一个网址中删除,而不是从第二个网址中删除。有什么方法可以防止他们被移除吗?

1 个答案:

答案 0 :(得分:0)

我无法告诉为什么它们被剥离(可能它们实际上不是,请求错误的资源),但指定基本身份验证凭据的常用方法是将它们传递到.open method

var url = "http://localhost:5984/wells/_design/reading/_view/by_time";
var xmlHttp = new XMLHttpRequest();
xmlHttp.open( 'GET', url, false, "will", "secret" );
xmlHttp.send( null );
console.log( xmlHttp.responseText );