Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用Typeahead&;时如何在请求正文中发送数据;猎犬?_Jquery_Ajax_Get_Typeahead.js_Bloodhound - Fatal编程技术网

Jquery 使用Typeahead&;时如何在请求正文中发送数据;猎犬?

Jquery 使用Typeahead&;时如何在请求正文中发送数据;猎犬?,jquery,ajax,get,typeahead.js,bloodhound,Jquery,Ajax,Get,Typeahead.js,Bloodhound,我正在尝试实现一个typeahead,它的源代码是一个API,它期望GET请求包含一个数据体,而不是url编码的数据。我在“prepare”对象中尝试了一些不同的方法,但无法将其用于url编码参数。使用typeahead或jquery是否可以让它不这样做?我有一种感觉,jquery可能不允许您这样做,因为这会被认为是“糟糕的做法”,但更改API并不是一个真正的选项! 这是我的密码: $(document).ready(function(){ var people = new Bloodhou

我正在尝试实现一个typeahead,它的源代码是一个API,它期望GET请求包含一个数据体,而不是url编码的数据。我在“prepare”对象中尝试了一些不同的方法,但无法将其用于url编码参数。使用typeahead或jquery是否可以让它不这样做?我有一种感觉,jquery可能不允许您这样做,因为这会被认为是“糟糕的做法”,但更改API并不是一个真正的选项! 这是我的密码:

$(document).ready(function(){
  var people = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  remote: {
    url: 'apiUrl',
    prepare: function (query, settings) {
                      settings.type = "GET";
                      settings.contentType = "application/json";
                      settings.DataType = "json";
                      settings.processData = false;
                      settings.data = JSON.stringify({"search":"people","query":query});
                      return settings;
                   }
    }
  });
  $('.typeahead').typeahead(null, {
    source: people
  });
})
我正在使用jquery1.11.3和typeahead.js0.11.1


谢谢

尝试使用修改最少的typeahead.js函数版本,
.on()
输入
事件

var substringMatcher=函数(strs、q、cb){
返回(函数(q、cb、名称){
var匹配,子关系x;
//将填充子字符串匹配项的数组
匹配项=[];
//用于确定字符串是否包含子字符串'q'的正则表达式`
substregex=新的RegExp(q,‘i’);
//在字符串池中迭代并查找
//包含子字符串'q',将其添加到'matches'数组中
$。每个(str,功能(i,str){
if(子相关性测试(str)){
//typeahead jQuery插件希望用户提供建议
//JavaScript对象,有关更多信息,请参阅typeahead文档
匹配。推送(名称(str));
}
});
cb(比赛);
}(q、cb、功能(res){
返回res
}));
};
$(“#typeahead”)。关于(“输入”,函数(e){
$.ajax({
url:“https://gist.githubusercontent.com/guest271314/"
+“ffac94353ab16f42160e/raw/”
+“AAEE70A3E351F6C7BC00178EABB590A02DF87E9/states.json”,
processData:false,
数据:JSON.stringify({
“搜索”:“人”,
“查询”:即目标值
})
})
.then(函数(json){
if(如目标值长度){
substringMatcher(JSON.parse(JSON)、e.target.value、函数(results){
$(“#结果ul”).empty();
$.map(结果、函数(值、索引){
$(“#结果ul”)
.append($(“
  • ”){ “类”:“结果-”+索引, “html”:值 })) }) }) }否则{ $(“#结果ul”).empty(); } },函数err(jqxhr,textStatus,errorshown){ console.log(textStatus,errorshown) }) });
    
    

    尝试使用修改最少的typeahead.js函数版本,
    .on()
    输入
    事件

    var substringMatcher=函数(strs、q、cb){
    返回(函数(q、cb、名称){
    var匹配,子关系x;
    //将填充子字符串匹配项的数组
    匹配项=[];
    //用于确定字符串是否包含子字符串'q'的正则表达式`
    substregex=新的RegExp(q,‘i’);
    //在字符串池中迭代并查找
    //包含子字符串'q',将其添加到'matches'数组中
    $。每个(str,功能(i,str){
    if(子相关性测试(str)){
    //typeahead jQuery插件希望用户提供建议
    //JavaScript对象,有关更多信息,请参阅typeahead文档
    匹配。推送(名称(str));
    }
    });
    cb(比赛);
    }(q、cb、功能(res){
    返回res
    }));
    };
    $(“#typeahead”)。关于(“输入”,函数(e){
    $.ajax({
    url:“https://gist.githubusercontent.com/guest271314/"
    +“ffac94353ab16f42160e/raw/”
    +“AAEE70A3E351F6C7BC00178EABB590A02DF87E9/states.json”,
    processData:false,
    数据:JSON.stringify({
    “搜索”:“人”,
    “查询”:即目标值
    })
    })
    .then(函数(json){
    if(如目标值长度){
    substringMatcher(JSON.parse(JSON)、e.target.value、函数(results){
    $(“#结果ul”).empty();
    $.map(结果、函数(值、索引){
    $(“#结果ul”)
    .append($(“
  • ”){ “类”:“结果-”+索引, “html”:值 })) }) }) }否则{ $(“#结果ul”).empty(); } },函数err(jqxhr,textStatus,errorshown){ console.log(textStatus,errorshown) }) });
    
    

    D
    设置中。数据类型应为小写
    D
    settings.DataType=“json”?谢谢你的建议!我尝试使用小写数据类型,但它不影响行为。尝试使用typeahead.js
    substringMatcher
    函数,请参阅
    settings中的post
    D
    。数据类型应为小写
    D
    settings.dataType=“json”?谢谢你的建议!我尝试使用小写数据类型,但它不影响行为。尝试使用typeahead.js
    substringMatcher
    函数,请参阅文章