javascript初心者です。
jQueryのAjax通信で外部のAPIを呼び出しています。
開発機(ローカル)においたファイルで実行しているので下記のようなエラーが出ました。
Access to XMLHttpRequest at 'https://xxxxx.php' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
調べたところクロスオリジンの問題という事がわかり、いくつか解決策をみつけたのですが、
外部のAPIのためサーバー側は変更できず、クライアント側の解決もイマイチ理解できておりません。
基本的な質問ですが、ひとつわからないことがあります。
今回呼び出しているAPIが置かれているサーバーに、別のAPIもあり、
それは別のhtmlファイルのFormで呼び出せています。
html
1<FORM id='POST_FORM' NAME='POST_FORM' METHOD="POST" ACTION='https://xxxxx.php'> 2
クロスオリジンの制約がかかるのはajax通信を使うからで、他の方法であれば制約はかからないものなのでしょうか?
また、今回はGETのAPIをつかってxmlレスポンスを取得したかったのでajax通信を初めて使ったのですが、
上記のような方法でajaxを使わずにもっと簡単に実現できる方法があれば教えていただきたいです。
javascriptのコードは下記に記載します。
javascript
1 $.ajax({ 2 url:'https://xxxxxxx.php', 3 type:'GET', 4 dataType:'xml', 5 data:{ 6 id:'xxxxxxxxxxx', 7 number:100 8 } 9 }) 10 .done(function( data ) { 11 // ... 12 console.log(data); 13 }) 14 .fail(function( jqXHR, textStatus, errorThrown ) { 15 // ... 16 console.log(textStatus); 17 }); 18
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/09 04:22
2019/09/09 04:30