DART HttpRequest不为CORS选项请求提供授权标头

DART HttpRequest不为CORS选项请求提供授权标头,dart,cors,dart-html,Dart,Cors,Dart Html,我尝试使用HttpRequest(dart:html)进行POST请求,以调用一个使用基本身份验证进行安全保护的rest服务 HttpRequest请求=新的HttpRequest();//创建一个新的XHR 变量url=”http://localhost:8082/xyz"; request.open(“POST”,url,async:false);//将数据发布到服务器 字符串username=“foo”; 字符串password=“bar”; final auth=CryptoUtils.

我尝试使用HttpRequest(dart:html)进行POST请求,以调用一个使用基本身份验证进行安全保护的rest服务

HttpRequest请求=新的HttpRequest();//创建一个新的XHR
变量url=”http://localhost:8082/xyz";
request.open(“POST”,url,async:false);//将数据发布到服务器
字符串username=“foo”;
字符串password=“bar”;
final auth=CryptoUtils.bytesToBase64(UTF8.encode($username:$password));
setRequestHeader('authorization','Basic$auth');
setRequestHeader('content-type',“application/json”);
setRequestHeader(“接受”、“应用程序/json”);
字符串jsonData='{“语言”:“dart”}';//等
请求发送(jsonData)//例外401未经授权

在执行POST调用之前,将在没有授权标头的情况下执行选项调用(由dart:html发布)。这将导致401未经授权的响应。

请求标头:

接受:*/*
接受编码: gzip、deflate、sdch
接受语言: 嗯我们,嗯,;q=0.8
访问控制请求头: 授权、内容类型、接受
访问控制请求方法: 张贴
缓存控制: 最大年龄=0
连接: 保持活力
主持人: 本地主机:8082
来源:
推荐人:
用户代理: Mozilla/5.0(Macintosh;英特尔Mac OS X 10_9_5)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/38.0.2125.0(Dart)Safari/537.36

响应头:

内容长度: 0
日期: 2015年2月2日星期一23:33:58 GMT
服务器: 码头(9.2.7.v20150116)
WWW认证: 基本领域=“xyzrealm”


是否有方法向选项调用提供授权标头


任何建议都很好。谢谢

浏览器会自动发出
选项
请求,您无法修改该请求。服务器需要允许
选项
飞行前请求而无需验证


用户凭据已被排除。

谢谢!您是对的,选项请求是由浏览器发出的。为了启用飞行前请求,我需要为Jetty服务器创建一个新的SecurityHandler。例如,请参见