jqueryを使用しています。
ajaxコマンドでリクエストを投げたのですが、POSTで投げたいのにOPTIONSになってしまいます。
ローカルPCにnginxでサーバを立てて、単純なWebページを作ってAzure上のIoTHubのサービスに投げようとしました。
ローカルホストのURLは、以下の通りです。
http://localhost:1234/
こんな感じのソースです。ダミーの値がいくつか入っていますが、読み替えてください。
JavaScript
1var url = "https://hogehogesample.example.com/devices/sample_device_id/messages/events?api-version=2016-02-03"; 2//ヘッダーを作成 3var ajaxHeaders = { 4 'Content-Type': 'application/x-www-form-urlencoded;application/json;charset=utf-8', 5 'Authorization': 'SharedAccessSignature sr=hogehogesample.example.com&sig=samplesig&se=samplese&skn=sampleskn' 6}; 7//パラメータ作成 8var ajaxParam = { 9 url: url, 10 type: 'POST', 11 headers: ajaxHeaders, 12 data: '{"test": "テスト"}' 13 14}; 15//呼び出し 16$.ajax(ajaxParam).done(function(){alert("success");});
これをchromeで実行し、開発者ツールでリクエストの内容を確認した処、Request Methodの部分が「OPTIONS」となります。
しかし、HeadersのAuthorizationを削除すると、「POST」として送信されます。
リクエスト先がPOSTしか受け付けていないため、どうにかPOSTにしないといけません。しかし'Authorization'ヘッダは仕様として必要なのです。
どうにかして、POSTでリクエストを送れないでしょうか?
ちなみにDHCというChromeの拡張機能を使った場合、POSTで正常に送信できました。

回答1件
あなたの回答
tips
プレビュー