Междоменный запрос AJAX - PullRequest
0 голосов
/ 11 июня 2011

У меня есть файлы JavaScript в моем основном домене, и я хочу сделать несколько звонков с субдомена.

Я добавил:

url: "http://domain.com/ajax.php"

Итак, полный код:

    $.ajax({
        type: "POST",
        url: "http://domain.com/ajax.php",
        data: {
            var1: var1,
            var2: var2
        },
        success: function(data){

        }
    });

Но в Firebug он показывает запрос как красный и не отвечает. Также есть параметры POST, как и должно быть.

Должен ли я создать новый файл JS на поддомене, добавить необходимые коды и выполнить оттуда вызовы AJAX?

РЕДАКТИРОВАТЬ: с использованием кода JSONP

Я использую это на localhost/ajax.php, который я звоню с sub.localhost

    $.ajax({
        dataType: 'jsonp',
        data: 'id=10',
        jsonp: 'jsonp_callback',
        url: 'http://localhost/ajax.php',
        success: function (data) {
            console.log(data);
        },
    });

и ajax.php содержит:

<?php
echo $_GET["id"];
?>

Ответы [ 3 ]

4 голосов
/ 12 июня 2011

Вы можете использовать заголовок Access-Control-Allow-Origin для включения междоменных запросов.

Прочитайте это: Обмен ресурсами между источниками (CORS)

2 голосов
/ 11 июня 2011

Если у вас есть jQuery 1.5+, вы можете использовать:

$.ajax({

    crossDomain:true,
    type: "POST",
    url: "http://domain.com/ajax.php",
    data: {
        var1: var1,
        var2: var2
    },
    success: function(data){

    }

});

Из документов:

crossDomain (добавлено 1,5)

Default: false for same-domain requests, true for cross-domain requests

Если вы хотите форсировать запрос crossDomain (например, JSONP) для одного и того же домена, установите для свойства crossDomain значение true. Это позволяет, например, перенаправление на стороне сервера в другой домен

0 голосов
/ 11 июня 2011

Для вызовов субдоменов у вас есть две опции:

  1. Использование document.domain с обеих сторон.

  2. ИспользованиеjsonP, либо через спецификацию crossDomain ajax из jQuery 1.5, либо напрямую .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...