我一直盯着这看了6个小时。我不明白。
$.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时,回声'hello world',没问题。当我运行它时,我得到一个带有'错误 - '的对话框。我试过在那里添加dataType:'html',没有帮助。想法?
- 编辑 -
所以这是我的实际问题。当我运行它时,既没有成功也没有错误被触发,我可以看到当我直接点击URL时JSON是正确的。 (顺便说一句,相对网址修复适用于上面的代码。)
$( "#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);
}
});
}
});
答案 0 :(得分:2)
您可能正在达到same origin policy限制,禁止您将AJAX请求发送到托管脚本的域之外的其他域。确保您不违反此政策的最佳方法是使用相对网址进行AJAX调用:
$.ajax({
url: "/datafeeder/hello_world",
success: function( data ) {
alert (data);
},
error: function(request, status, error) {
alert(status + ' - ' + error);
}
});
要使此AJAX请求生效,托管此JavaScript的HTML页面必须托管在http://www.band.dev:8888
上。