JQuery Невозможно получить данные службы drupal через localhost: 8888

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!");
    });
});
Теги:
web-services
drupal-7

2 ответа

1
Лучший ответ

Добавьте заголовок ответа на свой сервер:

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

Вы также можете сделать это с помощью php:

<?php 
    header('Access-Control-Allow-Origin: from-specific-domain.com');
?>
  • 0
    Итак, это сработало. Я создал модуль и код в нем: 'function add_header_init () {header (' Access-Control-Allow-Origin: * ');}' Решил проблему! Спасибо
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

  • 0
    Где я должен поставить эту строку?
  • 1
    @Dori (не преследую вас, обещаю;) Используйте drupal_add_http_header() , возможно, в реализации hook_init() в пользовательском модуле
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню