Cross Site XHR
Firefox3.5 の場合 Basic Auth が該当領域にかかっているとき CSXHR しようとするとめんどうくさい。
JS 側
- xhr.setRequestHeader("Authorization", "Basic foobar"); してやる
- (Basic Auth ダイアログは XHR ではでないし勝手に送ったりはしない)
鯖側
- setRequestHeader されていると simple request にならず必ず OPTIONS method でアクセスがくる
- OPTIONS には Basic Auth かからないようにする (Authorization を送らない)
- OPTIONS で以下のヘッダを返してやる
- Access-Control-Allow-Origin: domain
- Access-Control-Allow-Methods: POST, GET, OPTIONS
- Access-Control-Allow-Headers: Authorization
事故死しないように setRequestHeader はちゃんと管理する必要あり (クライアントサイドコードなので……)
req.withCredentials = "true"
して
Access-Control-Allow-Credentials: true Access-Control-Allow-Origin: domain
をかえせばいいらしい…… けど domain はちゃんと Origin と一致してないとだめっぽい?