これは、https://social.msdn.microsoft.com/Forums/en-US/6e856136-9a39-4b98-a53d-7f8bce08e3a6/cors-support-for-bing-translate-apiに関連する質問です。CORSはMicrosoft Azure Translate APIをサポートしていますか?
Microsoft Azure Translate APIがCORSをサポートしていますか?
これは、https://social.msdn.microsoft.com/Forums/en-US/6e856136-9a39-4b98-a53d-7f8bce08e3a6/cors-support-for-bing-translate-apiに関連する質問です。CORSはMicrosoft Azure Translate APIをサポートしていますか?
Microsoft Azure Translate APIがCORSをサポートしていますか?
Microsoft Translator Text APIは、少なくとも応答でAccess-Control-Allow-Origin
ヘッダを送信するように見えるんように、少なくとも最低限今、CORSをサポートするために表示されます。
$ curl -i -H 'Origin: http://example.com' \
'https://api.microsofttranslator.com/v2/http.svc/Translate?appid=foo&text=hello&from=en&to=de'
HTTP/1.1 400 Bad Request
Content-Length: 220
Content-Type: text/html; charset=utf-8
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: X-MS-Trans-Info
X-MS-Trans-Info: 0642.V2_Rest.Translate.4E779D02
Date: Wed, 30 Aug 2017 09:07:34 GMT
<html><body><h1>Argument Exception</h1><p>Method: Translate()</p><p>Parameter: appId</p><p>Message: Invalid appId
Parameter name: appId</p><code></code><p>message id=0642.V2_Rest.Translate.4E779D02</p></body></html>
私は個人的にwith-テストするために有効なappid
を持っていませんあなたがしなければしかし、私はあなたがそれがうまくいく見つけることだと思う:
GET
エンドポイントを使用する場合Authorization
リクエストヘッダーを使用するか、Content-Type
を設定していないようhttps://docs.microsofttranslator.com/text-translate.htmlPOST
のために働く可能性がある場合Authorization
リクエストヘッダの代わりにappid
パラメータを使用して認証する場合。
これらのヘッダとの問題は、彼らがプリフライトOPTIONS
要求を行うには、ブラウザをトリガします、次のとおりです。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests
そして、プリフライトを誘発するそれらのAPIエンドポイントへの呼び出しを行うと問題が、彼らドンでありますブラウザがプリフライトを成功として見られるように、OPTIONS
リクエストに応答しているようです。 https://docs.microsofttranslator.com/text-translate.html#!/default/post_TranslateArrayで
私は、ドキュメントは、エンドポイントがapplication/xml
またはtext/xml
Content-Type
でPOST
を期待するので、そのエンドポイントは、1が動作しないこと、正しい方法でプリフライトOPTIONS
に応答しない場合と言うことに気づきます。
要求にContent-Type: application/xml
かContent-Type: text/xml
ヘッダを追加すると、間違いなくPOST
前にプリフライトOPTIONS
を行うには、ブラウザの引き金となるためです。
正解!私はヘッダ 'Authorization'を使っていました。ドキュメントには、あなたがちょうど言ったすべてを言及する必要があります – seza443
ここで情報が助けてくれてうれしいです。私がそこを見たところでは、CORSのサポートやブラウザで実行されているフロントエンドJavaScriptからこれらのエンドポイントを呼び出す方法についての情報は全く見つかりませんでした。だから、私はそれらのドキュメントは、今よりももっと言及すべきだと思う... – sideshowbarker