В запрошенном ресурсе в XAMPP отсутствует заголовок «Access-Control-Allow-Origin».

В моем php-коде я использую следующий запрос Ajax. Запрос Ajax показывает следующую ошибку в консоли браузера Chrome

XMLHttpRequest не может загрузить http://example.com/posts. В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Таким образом, доступ к источнику 'http://localhost' запрещен. (показатель):

Мой код:

<script>
    $(document).ready(function() {
        var title = 'Tes ajax';
        var raw = 'very good';

        //Validate fields if required using jQuery

        var postForm = { //Fetch form data
            'api_key'     : 'bf_apikey',
            'api_username': 'username',
            'title'       : title,
            'raw'         : raw,
            'category'    :'categoryname'//Store name fields value
        };

        $.ajax({ //Process the form using $.ajax()
            type      : 'POST', //Method type
            url       : 'http://example.com/posts', //Your form processing file URL
            data      : postForm,           //Forms name
            dataType  : 'application/json',
            success:  updatesuccess,
            error: updatefailure
            // return response; // <- tried that one as well
        });
        function updatesuccess(result)
        {
            alert(result+"Successs")
        }

        function updatefailure()
        {
            alert("failure")
        }          

    });
</script>

пожалуйста, предложите лучший вариант для решения этой ошибки.


person Team    schedule 29.05.2015    source источник
comment
stackoverflow .com/questions/10143093/   -  person Izion    schedule 29.05.2015


Ответы (1)


Проблема с CORS, приятель. Три возможных решения:

1) JSONP;

2) Создайте прокси на этом же домене, отправьте свой запрос на прокси и используйте прокси для вызова сервиса;

3) Если у вас есть доступ к «example.com» (источнику, на который вы делаете вызов ajax), добавьте следующий заголовок: header('Access-Control-Allow-Origin: *');

person Evernoob    schedule 29.05.2015
comment
Я пробовал с вашим первым решением. Это не работает, я все еще получаю ту же ошибку. А также я пробовал третье решение. Но у меня есть одно сомнение, где нужно добавить заголовок ('Access-Control-Allow-Origin: *'); - person Team; 29.05.2015