クロームプラグインとしてJavascriptを使用してcurl--digest-u username:password -d"mydata" http://example.com/pushのようなものを実装したいと思います。これが私のコードです。
<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が原因で、POSTの代わりにChromeブラウザが発信元に対してOPTIONSメッセージチャレンジを送信します。URLを同じドメインに変更すると、機能します。認証を無効にした場合も機能します。しかし、自分の管理下にない他のドメインにPOSTする必要があります。つまり、easyXDMのようなソリューションを使用することはできません。また、HTTP基本認証も必要です。私は一週間解決策を探していました。ヒントをいただければ幸いです。