0

このチュートリアルにあるようにサービスを作成しました。ブラウザに次の URL を入力すると、次のように表示されます。

http://{localhost}:8888/drupal2/test_test/node/1.jsonp

また

http://{localhost}:8888/drupal2/test_test/node/1.json

また

http://{localhost}:8888/drupal2/test_test/system/connect.json

json コールバックを取得します。しかし、それがjqueryコードにあるとき、私は得る

XMLHttpRequest は http://{localhost}:8888/drupal2/test_test/node/1.json?type=post&format=json を読み込めません。オリジン http://{localhost}:8383 は Access-Control-Allow-Origin で許可されていません。

なぜそれが起こっているのですか?

JQuery コード:

$(function() {
    var urlis = "http://localhost:8888/drupal2/test_test/node/1.json";
    $.getJSON(urlis, {
        type: 'post', 
        format: "json"
        }).done(function(afterdone) {
        console.log("JSONP Data");
    })
     .fail(function(error) {
        console.log("NO!");
    });
});
4

2 に答える 2

1

クロスドメイン AJAX を許可する必要があります。PHP で実行するには、スクリプトを次のように変更します。

header('Access-Control-Allow-Origin: domain.com');

または、htaccess または apache conf ファイルを変更します。

<FilesMatch "\.*$">
  <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "domain.com"
  </IfModule>
</FilesMatch>

また、クロスドメイン AJAX リクエストと JSON レスポンスに関するこの記事もご覧ください。

于 2013-09-26T15:34:46.520 に答える
1

サーバーに応答ヘッダーを追加します。

Access-Control-Allow-Origin: from-specific-domain.com

phpでもそれを行うことができます:

<?php 
    header('Access-Control-Allow-Origin: from-specific-domain.com');
?>
于 2013-09-26T15:35:12.853 に答える