通过 systemjs 请求的脚本失败并显示 401 Unauthorized
scripts requested via systemjs fail with 401 Unauthorized
我正在为 Team Foundation Server 2015 构建 hub extension。
我的 Hub HTML 页面工作正常,直到我切换到使用 systemjs 和 angular2,此时来自 systemjs 的任何脚本请求似乎都被 401 未授权拒绝。
我严格按照 Angular2 Quickstart 指南操作,无需身份验证即可在本地正常运行。
但是一旦我将我的应用程序上传到 TFS,systemjs 请求的任何脚本都会被拒绝,如下所示:
Error: XHR error (401 Unauthorized) loading http://tfs-server:8080/tfs/_apis/public/gallery/publisher/my-publisher/extension/source-extensions/1.1.2/assetbyname/scripts/main.js(…)
Zone.run @ angular2-polyfills.js:1243
zoneBoundFn @ angular2-polyfills.js:1220
lib$es6$promise$$internal$$tryCatch @ angular2-polyfills.js:468
lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:480
lib$es6$promise$$internal$$publish @ angular2-polyfills.js:451
lib$es6$promise$$internal$$publishRejection @ angular2-polyfills.js:401
(anonymous function) @ angular2-polyfills.js:123
Zone.run @ angular2-polyfills.js:1243
zoneBoundFn @ angular2-polyfills.js:1220
lib$es6$promise$asap$$flush @ angular2-polyfills.js:262
如果我通过脚本标签加载我的脚本,则没有授权问题。但是,当我像这样通过 systemjs 执行此操作时,它会因 401 错误而失败:
<script>
System.config({
packages: {
scripts: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('scripts/main.js')
.then(null, console.error.bind(console));
</script>
我的问题是:当使用 systemjs 加载脚本而不是直接加载它们时,我是否需要做一些额外的事情来避免未经授权的 401?
SystemJS 将使用 XHR 加载代码,这可能是这里的区别。
如果你想让SystemJS使用
我正在为 Team Foundation Server 2015 构建 hub extension。
我的 Hub HTML 页面工作正常,直到我切换到使用 systemjs 和 angular2,此时来自 systemjs 的任何脚本请求似乎都被 401 未授权拒绝。
我严格按照 Angular2 Quickstart 指南操作,无需身份验证即可在本地正常运行。
但是一旦我将我的应用程序上传到 TFS,systemjs 请求的任何脚本都会被拒绝,如下所示:
Error: XHR error (401 Unauthorized) loading http://tfs-server:8080/tfs/_apis/public/gallery/publisher/my-publisher/extension/source-extensions/1.1.2/assetbyname/scripts/main.js(…)
Zone.run @ angular2-polyfills.js:1243
zoneBoundFn @ angular2-polyfills.js:1220
lib$es6$promise$$internal$$tryCatch @ angular2-polyfills.js:468
lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:480
lib$es6$promise$$internal$$publish @ angular2-polyfills.js:451
lib$es6$promise$$internal$$publishRejection @ angular2-polyfills.js:401
(anonymous function) @ angular2-polyfills.js:123
Zone.run @ angular2-polyfills.js:1243
zoneBoundFn @ angular2-polyfills.js:1220
lib$es6$promise$asap$$flush @ angular2-polyfills.js:262
如果我通过脚本标签加载我的脚本,则没有授权问题。但是,当我像这样通过 systemjs 执行此操作时,它会因 401 错误而失败:
<script>
System.config({
packages: {
scripts: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('scripts/main.js')
.then(null, console.error.bind(console));
</script>
我的问题是:当使用 systemjs 加载脚本而不是直接加载它们时,我是否需要做一些额外的事情来避免未经授权的 401?
SystemJS 将使用 XHR 加载代码,这可能是这里的区别。
如果你想让SystemJS使用