0
我一直盯着這個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);
}
});
我跑甲基苯丙胺在本地,當我直接打網址它的回聲「世界你好」,沒有任何問題。當我運行這個,我得到一個對話框'錯誤 - '。我試着在裏面添加dataType:'html',沒有任何幫助。思考?
- 編輯 -
所以這是我的實際問題。當我運行這個時,沒有成功或錯誤被激發,並且當我直接點擊URL時,我可以看到JSON是正確的。 (順便說一句,相對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開發中,而跨域策略是非常必要和常見的。但有了這個,我看到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