我想實現類似 curl --digest -u用戶名:密碼-d「mydata」http://example.com/push 用Javascript作爲Chrome插件。 這是我的代碼。JavaScript for HTTP post with authentication
<html>
<head>
</head>
<body>
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type='text/javascript' src="jquery.base64.js"></script>
<script language="javascript">
function setHeader(xhr) {
xhr.setRequestHeader('Authorization', $.base64Encode('username:password'));
}
$.ajax({
type: "POST",
url: "http://example.com/push",
data: "<Phone><Data>mydata</Data></Phone>",
xhrFields: {
withCredentials: true
},
crossDomain: true,
beforeSend: setHeader,
success: function (data,status,xhr){
//do something
}
});
</script>
</body>
</html>
這是一個使用HTTP基本認證的跨域POST。 由於CORS,Chrome瀏覽器而不是POST發送OPTIONS消息質詢來源。 如果我將網址更改爲相同的域,它的工作原理。 如果我禁用身份驗證,它也可以。 但是我必須POST到其他域,這不在我的控制之下,這意味着我不能使用像easyXDM這樣的解決方案。他們還需要HTTP基本認證。我一直在尋找解決方案一週。任何暗示是讚賞。
如果他們不支持CORS('OPTIONS'),有什麼可以做的。 – SLaks 2012-04-04 19:46:55