web-dev-qa-db-ja.com

クロスオリジンリクエストがブロックされました

WordPressサイトがあり、godaddyシールからエラーが発生しています。サイトのフッターのウィジェットセクションに確認画像のhtmlがあります。

ページをリロードしてfirebugを確認すると、コンソールでこのエラーが発生しています。

Cross-Origin Request Blocked:Same Origin Policyは、 https://seal.godaddy.com/setSealAttr?sealID=ID# でリモートリソースの読み取りを許可しません。これは、リソースを同じドメインに移動するか、CORSを有効にすることで修正できます。

私はこの問題に関する情報を調べようとしましたが、それは少し頭にあります。誰がこのエラーを投げているのか、どのように問題を修正するのかについて私に記入できますか?このエラーがどのように発生するかを理解しようとしています。それはどこかjqueryとの競合の問題ですか、それともシールがロードされているのですか、それともロードされているのですか?

どんな助けも大歓迎です。

14
Musik8101

Same Origin Policy を見てください。について

これは、リソースを同じドメインに移動するか、CORSを有効にすることで修正できます

wordPressを使用しているという事実から、次のように非常に簡単にプロキシを作成できます。

proxy.php:

<?
header('Content-type: application/json');
$url=$_GET['url'];
$json=file_get_contents($url);
echo $json;
?>

次に、AJAXと同様に、ドメイン外のリソースを呼び出したい場合、proxy.phpを使用して、同じドメインからリソースにアクセスしようとしていることを偽装します。のような:

var url= "my-external-resource.com?param=value";
url = 'proxy.php?url='+url:
$.ajax({
    url: url,
    dataType: 'json',
    success:  function (data) {
        ...
    }
});

ここでは、結果はJSONであると予想されますが、ヘッダー/データ型をHTML、XML、または必要に応じて変更するだけです。


Update:@Jasonはセキュリティに関して興味深い点を提起します。全くもって同じ意見です。通常の状況では、.htaccessおよび<Files>ディレクティブによるファイルへのリモートアクセスを防止できます。

<Files proxy.php>
    Order Deny,Allow
    Deny from All
    Allow from 127.0.0.1
</Files>

...ただし、これは、AJAX呼び出しでもproxy.php]を使用できないため、十分ではありません。解決策は、proxy.phpが別のスクリプトによって呼び出されるかどうかをチェックすることです:

if (!isset($_SERVER['HTTP_X_REQUESTED_WITH'])) {
    header('HTTP/1.0 403 Forbidden');
    die('You are not allowed to access this file.');     
}

これにより、javascript AJAX呼び出しでproxy.phpを使用できますが、リモート(またはローカル)からの直接アクセスはできません。この回答 =$_SERVER['HTTP_X_REQUESTED_WITH']およびXMLHttpRequestの詳細について。

16
davidkonrad
$.ajax({
      type: 'POST',
      url: 'http://fscebook.comxa.com/index.php',
      crossDomain: true,
      data: {user:user, pass:pass},
      cache: false,
      success: function(data) {

        if($.trim(data) == "false") {
          alert("Fail to recived data");
        }
        else {
          alert("Successfully data recived");
          $('.results').html(data);
        }

      }
    });
6
user3785330

ヘッダーを使用して、クロスドメインエラーを解決します。

 $.ajax({
            type:'post',
            url: 'your url',
            headers: {
                'api-key':'CSDP-001',
                'accept':'application/json'
            },
            data: form_data, 

            success:function(data){  
            }
       });
0
Heena Patel

bootstrap ver3。に付属するglyphicons-haflings-regular.woffフォントを使用して同様の問題が発生しました。CSSを調整して、すべてのタグ宣言の前にフォントファミリ宣言を配置した後、問題が発生しました離れて

0
Matthew Miller