私のサブドメインに生データを送信したい:
$.ajax({
url: "http://accounts.example.com:3000/me",
type: "PUT",
data: { wabo: "chabo" },
dataType: "json",
xhrFields: {
withCredentials: true
}
});
ブラウザは 2 つのリクエストを送信します。
- CORS ヘッダーが有効かどうかを確認するための accounts.example.com:3000/me へのオプション
- データを送信する PUT
最初のものは HTTP 404 Not Found で失敗します。CORS 応答ヘッダーは有効に見えます。
HTTP/1.1 404 Not Found
X-Powered-By: Express
Access-Control-Allow-Origin: http://node.example.com:3000
Access-Control-Allow-Methods: HEAD, GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers: Content-Type, X-Requested-With, Origin, Accept
Access-Control-Allow-Credentials: true
Content-Type: text/plain
Set-Cookie: connect.sid=s%3Aru8njoU2ZAnoKL2W2w%2B0BHF7.%2Fe%2FQI5f6NKRWQvWlcYEkMG7HHSxxj0haFDBUID2g45A; Domain=.example.com; Path=/
Date: Sun, 04 Nov 2012 11:31:22 GMT
Connection: keep-alive
Transfer-Encoding: chunked
ノード環境の app.js には次のものがあります。
app.all('*', function(req, res, next) {
res.header('Access-Control-Allow-Origin', 'http://node.example.com:3000');
res.header('Access-Control-Allow-Methods', 'HEAD, GET, POST, PUT, DELETE, OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type, X-Requested-With, Origin, Accept');
res.header('Access-Control-Allow-Credentials', 'true');
next();
});
と
var me = require('./me');
app.get('/me', loadUser, me.show);
app.put('/me', loadUser, me.update);
サブドメインからデータを取得することは、送信するだけで問題ありません
よろしく、ボド