1

$http.get リクエストをダックダックゴの API に送信したいアプリを作成していますが、そのリクエストは HTTP 経由で行われます。私のサイトが HTTP であることを確認すると、次のエラーが発生します。

angular.js:11756 Mixed Content: 
The page at 'URL' was loaded over HTTPS, 
but requested an insecure XMLHttpRequest endpoint 'http://api.duckduckgo.com/'. 
This request has been blocked; the content must be served over HTTPS.

リクエストに s を追加すると、明らかに次のようになります (CORS が設定されていないことがわかります)。

XMLHttpRequest cannot load:
https://api.duckduckgo.com/?q=Undulated%20Tinamou&format=json&pretty=1. 
Response to preflight request doesn't pass access control check: 
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'https://URL' is therefore not allowed access. The response had HTTP status code 405.

私の質問: json を取得して、上記の 2 つのうちの 1 つをバイパスすることはありますか?

編集1:

$http.get('https://api.duckduckgo.com/?q=' + birdname + '&format=json&callback=jsonp&pretty=1').then(function(res){
            console.log(res.data);
        });

私も次のことを試しました:

$http.jsonp('https://api.duckduckgo.com/?q=' + birdname + '&format=json&callback=jsonp&pretty=1').then(function(res){
                console.log(res.data);
            });

2番目の場合、次のエラーが発生します。

Uncaught ReferenceError: json is not defined
4

0 に答える 0