jquery自动完成jsonp问题

时间:2014-01-09 04:48:00

标签: jquery ajax jsonp jquery-autocomplete

所以我经历了一次有趣的学习经历。最终产品生产这个...... 无论我怎么努力,我都无法获得自动完成功能.... 我在#air输入字段中键入DELTA,它发出请求 我回复200响应,但接着是什么? 我在这里想念的是什么...... 顺便提一下,这看起来像一个简单的Json响应,而不是JsonP响应,但出于某种原因,当我发送请求为Json时,我得到401错误,但只是将其更改为JsonP我得到了200回复​​。

有人可以帮助我理解为什么我无法获得显示航空公司名称的下拉列表(并记录所选的航空公司代码

...谢谢

[
  {
    "id": "DL",
    "label": "DELTA AIRLINES"
  },
  {
    "id": "GG",
    "label": "Delta Airlines (Group Space)"
  }
]

为了得到它,我这样做......

$(function() {

var url="http://<<ourinternalserver>>.com/scripts/broker.dll?_program=tas.json_airlines_test.sas";


$( "#air" ).autocomplete({
  source: function( request, response ) {
    $.ajax({
      url: url,
      dataType: "jsonp",
      data: {
        term: request.term
      },
      success: function( data ) {
            console.log('success');
      } // end of success
    }); // end of ajax
  },
  minLength: 2

 });
 });

1 个答案:

答案 0 :(得分:0)

尝试在$.ajax()中添加timeout parameter

var req = $.ajax({
    url: url,
    dataType: "jsonp",
    data: {
      term: request.term
    },
    timeout : 10000
}); // end of ajax

req.success(function() {
    console.log('Success!');
});

req.error(function() {
    console.log('Error!');
});

阅读jquery jsonp-requestsAutocomplete jsonp以及jQuery ajax (jsonp) ignores a timeout and doesn't fire the error event