2015-12-09 1 views
0

я использовал следующий сценарий для доступа мои данные Basecamp проект, но до сих пор она возвращает следующие ошибки:Доступ проектов Basecamp с помощью Ajax вызова Javascript

XMLHttpRequest cannot load https://********.basecamphq.com/projects.xml. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://******.****.com' is therefore not allowed access. The response had HTTP status code 405.

$.ajax({ 
    type: 'GET', 
    url: 'https://xxxxxxxxx.basecamphq.com/projects.xml', 
    dataType: 'json',  
     headers: { 
    "Access-Control-Allow-Origin": "*", 
    "Authorization":"Basic *********************", 
    "Accept":"application/json", 
    "Content-Type": "application/json", 
    "charset":"=utf-8" 
    }, 
    error: function (request, textStatus, errorThrown) { 
     alert('e'); 

    }, 

    success: function() {alert('s');} 
}); 

Так может я знаю, можно ли получить доступ к basecamp проекты с использованием javascript ajax call, если да, пожалуйста, добавьте пример кода.

+0

Я думаю, что междоменная проблема есть на http://stackoverflow.com/questions/6871021/how-to-enable-cross-domain-request-on-the-server –

ответ

1

Что вы имеете здесь проблема CORS. Вы устанавливаете "Access-Control-Allow-Origin": "*" по самому запросу ajax, однако этот заголовок должен быть установлен на стороне сервера (так на стороне basecamp). Вы не можете заставить сервер включить CORS из запроса клиента.

Если у вас нет доступа для включения CORS на стороне basecamp, вам придется пройти через прокси-сервер (т. Е. Настроить прокси-сервер, который имеет то же происхождение, что и basecamp, включить CORS на нем, а затем сделать запрос ajax непосредственно прокси).