Javascript xml.setRequestHeader失败,语法错误:DOM异常12

Javascript xml.setRequestHeader失败,语法错误:DOM异常12,javascript,xmlhttprequest,Javascript,Xmlhttprequest,我正在尝试以下代码: // create a request var xml = new XMLHttpRequest(); xml.open("GET", url, false); xml.setRequestHeader("Authorization", "Negotiate " + base64Token); 它在最后一行(setRequestHeader)失败,错误如下: 语法错误:DOM异常12 我试过调试它,但不完全确定为什么会发生这种情况!在设置标

我正在尝试以下代码:

    // create a request
    var xml = new XMLHttpRequest();
    xml.open("GET", url, false);
    xml.setRequestHeader("Authorization", "Negotiate " + base64Token);
它在最后一行(setRequestHeader)失败,错误如下:

语法错误:DOM异常12

我试过调试它,但不完全确定为什么会发生这种情况!在设置标头之前,我正在打开请求,但尚未发送

我目前正在Chrome 21上进行测试


感谢您的帮助

您确定base64Token变量的内容吗?查看此错误代码,您在某处给出了错误的字符串值:

DOMException.SYNTAX_ERR 12 An invalid string value is specified.
尝试设置另一个标头或相同的标头,但对base64Token变量进行硬编码,而不是将其作为变量串联。 我对此不太确定,但也要检查URL,并尝试使用一个已知的URL,如www.google.com,看看它是否会成为一个问题。 另外,如果您正在使用file://协议进行本地测试,那么这可能是处理XMLHttpRequest的问题的根源

另外,正如Furqan所说的,您可以尝试使用warper库,但我猜仅为此使用jQuery可能会为一个小小的调用添加大量代码


希望这有帮助

不确定,但请尝试一下,将变量名从
xml
更改为somethingelse。感谢您的建议,但不幸的是,这不起作用。(将名称从xml改为request)您可以选择
Jquery
?如果这能解决问题,我愿意尝试一下,您有什么建议(再次感谢您的帮助)。由于这种异常通常发生在浏览器不支持您尝试执行的某些操作时,而Jquery提供跨浏览器支持,因此,您不是创建XMLHTTPRequest,而是创建Jquery XMLHTTPRequest,它自动实例化底层浏览器XMLHTTP对象(XMLHHTPRequest对象因浏览器实现和支持而异),因此您永远不会遇到此类异常。您可以浏览
http://api.jquery.com/jQuery.ajax/
这里介绍一下如何使用Jquery请求机制。