ajax jquery simple получить запрос
Я делаю этот простой запрос get, используя jquery ajax:
$.ajax({
url: "https://app.asana.com/-/api/0.1/workspaces/",
type: 'GET',
success: function(res) {
console.log(res);
alert(res);
}
});
В результате возвращается пустая строка. Если перейти по этой ссылке в моем браузере, я получу:
{"status":401,"error":"Not Authorized"}
который является ожидаемым результатом. Так почему же он не работает с использованием ajax?
Спасибо!
Ответы
Ответ 1
Мне кажется, что это междоменная проблема, поскольку вам не разрешено делать запросы к другому домену.
Вы должны найти решение этой проблемы:
- Используйте прокси-скрипт, работающий на вашем сервере, который перенаправит ваш запрос и обработает ответ, отправив его в браузер
Или же
- Служба, к которой вы делаете запрос, должна иметь поддержку JSONP. Это междоменная техника. Вы можете прочитать это http://en.wikipedia.org/wiki/JSONP
Ответ 2
Вы можете отправлять запросы AJAX приложениям, загруженным из одного и того же домена и одного и того же порта.
Кроме того, вы должны добавить dataType JSON
, если хотите, чтобы результат был десериализован автоматически.
$.ajax({
url: "https://app.asana.com/-/api/0.1/workspaces/",
type: 'GET',
dataType: 'json', // added data type
success: function(res) {
console.log(res);
alert(res);
}
});
http://api.jquery.com/jQuery.ajax/
Ответ 3
var dataString = "flag=fetchmediaaudio&id="+id;
$.ajax
({
type: "POST",
url: "ajax.php",
data: dataString,
success: function(html)
{
alert(html);
}
});
Ответ 4
я думаю, проблема в том, что в функции успеха нет данных, потому что запрос разбивается с ошибкой 401 в вашем случае и, следовательно, не имеет успеха.
если вы используете
$.ajax({
url: "https://app.asana.com/-/api/0.1/workspaces/",
type: 'GET',
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
будет ваш код 401, который я думаю (эта ссылка говорит так)
Ответ 5
var settings = {
"async": true,
"crossDomain": true,
"url": "<your URL Here>",
"method": "GET",
"headers": {
"content-type": "application/x-www-form-urlencoded"
},
"data": {
"username": "[email protected]",
"password": "12345678"
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});