Я смотрю на это в течение 6 часов. Я не понимаю.Почему мой jquery.ajax() не срабатывает с успехом или ошибкой?
$.ajax({
url: "http://www.band.dev:8888/datafeeder/hello_world",
success: function(data) {
alert (data);
},
error: function(request, status, error) {
alert(status + ' - ' + error);
}
});
Я использую MAMP локально, и когда я нажимаю на URL-адрес, это echo «hello world», без проблем. Когда я запускаю это, я получаю диалоговое окно с «error -». Я попытался добавить dataType: 'html' там, без помощи. Мысли?
- EDIT -
Так что это моя Актуальная проблема. Когда я запускаю это, ни успех, ни ошибка не срабатывают, и я вижу, что JSON корректен, когда я попал прямо в URL. (Кстати, относительный URL затруднительное работал на выше кусочке кода.)
$("#member_type").autocomplete({
source: function(request, response) {
$.ajax({
url: "/datafeeder/get_member_types/json",
dataType: "jsonp",
data: {
//maxNum: 12,
searchString: request.term
},
search: function(event, ui) {
alert('searching');
},
success: function(data) {
alert (data);
response($.map(data, function(item) {
return {
label: item.type,
value: item.id
}
}));
},
error: function(request, status, error) {
alert (status + ' - ' + error);
}
});
}
});
Я думал об этом, потому что мой исходный фон был во Flash-разработке, а политики crossdomain настолько необходимы и распространены. Но с этим я увидел http://jqueryui.com/demos/autocomplete/#remote-jsonp для ввода автозаполнения, и они вытягиваются из сценария, размещенного снаружи. Это только из-за формата JSONP, который они возвращают? – Tim
@Tim, для работы JSONP ваш сервер должен возвращать JSONP, а не '' hello world''. Взгляд JSONP может выглядеть так: 'someCallback ({value: 'hello world'}), где, конечно, вы можете персонализировать имя' someCallback', передав его как параметр запроса. –
http://stackoverflow.com/questions/2887209/what-are-the-differences-between-json-and-jsonp/2887218#2887218 это может помочь понять разницу – Rafay