[Error] Error: SyntaxError: DOM Exception 12
setRequestHeader@[native code]
http://localhost:8989/app/js/base.js:40967:27
http://localhost:8989/app/js/base.js:19014:33
forEach@http://localhost:8989/app/js/base.js:9537:24
http://localhost:8989/app/js/base.js:19012:14
sendReq@http://localhost:8989/app/js/base.js:18873:21
serverRequest@http://localhost:8989/app/js/base.js:18589:23
processQueue@http://localhost:8989/app/js/base.js:22454:29
http://localhost:8989/app/js/base.js:22470:39
$eval@http://localhost:8989/app/js/base.js:23672:28
$digest@http://localhost:8989/app/js/base.js:23488:36
$apply@http://localhost:8989/app/js/base.js:23777:31
bootstrapApply@http://localhost:8989/app/js/base.js:10661:21
invoke@http://localhost:8989/app/js/base.js:13409:22
doBootstrap@http://localhost:8989/app/js/base.js:10659:20
bootstrap@http://localhost:8989/app/js/base.js:10679:23
angularInit@http://localhost:8989/app/js/base.js:10573:14
http://localhost:8989/app/js/base.js:35510:16
fire@http://localhost:8989/app/js/base.js:3094:35
fireWith@http://localhost:8989/app/js/base.js:3206:11
ready@http://localhost:8989/app/js/base.js:3412:24
completed@http://localhost:8989/app/js/base.js:3428:14


這是個什么error?沒見過baidu一下有了:
DOMException是W3C DOM核心對象。
DOMException接口表示一個處理的錯誤,當一個操作不可能執行的時候,會拋出一個異常。
例如試圖創建一個無效的DOM, 或通過一個不存在的節點作為參數節點操作方法。
SYNTAX_ERR code 12 --> 無效或非法的字符串被指定。
具休介紹可以到些鏈接查看: http://www.zhangxinxu.com/wordpress/2012/05/w3c-dom-domexception-object/
先從error stack中找到出錯的地方,在angular-file-upload-all.js中的以下位置:
1 var key, i;
2 function patchXHR(fnName, newFn) {
3 window.XMLHttpRequest.prototype[fnName] = newFn(window.XMLHttpRequest.prototype[fnName]);
4 }
5
6 if (window.XMLHttpRequest && !window.XMLHttpRequest.__isFileAPIShim) {
7 patchXHR('setRequestHeader', function (orig) {
8 return function (header, value) {
9 if (header === '__setXHR_') {
10 var val = value(this);
11 // fix for angular < 1.2.0
12 if (val instanceof Function) {
13 val(this);
14 }
15 } else {
16 orig.apply(this, arguments);
17 }
18 }
19 });
20 }
出錯的位置在第16行,把header打出來看了一下,Authorization的值是這樣的'Token '的,后面多了一個空格,果斷刪除掉空格再試,不爆錯了,原來是空格惹的禍,為什么會出錯呢,想去看看這個orig的內容是什么,可碰到[native code],這個估計是c++的code,這個要如何看得到內容呢,問題是解決了,但還未探清問題的源頭,又是c代碼,請高人指點。