我正在尝试让Geobytes ajax city搜索在我的服务器上运行。我从字面上剪切了粘贴http://www.geobytes.com/free-ajax-cities-jsonp-api.htm的代码,但GetJSON例程没有做任何事情;没有.done(),. error()..甚至是回调。
我插入了一个.ajax-check,它告诉我有一个超时错误。但是当我将来自console.log()的URL粘贴到浏览器中时,它可以正常工作。通过PHP curl服务器端,相同的URL也可以正常工作。
有什么可能出错的想法吗?
(Geobytes论坛似乎没有维护,我的帖子从未出现过)
由于
<script type="text/javascript">
jQuery(function ()
{
jQuery("#f_elem_city").autocomplete({
source: function (request, response) {
console.log("searching for http://gd.geobytes.com/AutoCompleteCity?callback=?&q="+request.term);
$.ajax({
url: "http://gd.geobytes.com/AutoCompleteCity?callback=?&q="+request.term,
dataType: 'json',
timeout: 8000,
success: function( data, string ) { console.log("success"); console.log(string);},
error: function( data, string ) { console.log("error"); console.log(string); }
});
console.log("after ajax");
jQuery.getJSON(
"http://gd.geobytes.com/AutoCompleteCity?callback=?&q="+request.term,
function (data) {
console.log("success");
response(data);
}
);
},
minLength: 3,
select: function (event, ui) {
var selectedObj = ui.item;
jQuery("#f_elem_city").val(selectedObj.value);
return false;
},
open: function () {
jQuery(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function () {
jQuery(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
});
jQuery("#f_elem_city").autocomplete("option", "delay", 100);
});
</script>
<form action="" method="post" name="form_demo" id="form_demo" enctype="multipart/form-data" onsubmit="return false;">
<p><b>Please enter</b> your city here to see it work. <input class="ff_elem" type="text" name="ff_nm_from[]" value="" id="f_elem_city"/>
</form>
答案 0 :(得分:0)
尝试为跨域ajax请求添加JSONP。
因此dataType: 'json'
必须为dataType: 'jsonp'
答案 1 :(得分:0)
我有类似的问题,这是跨域请求。当我在响应服务器中添加“Access-Control-Allow-Origin”标头时,问题就解决了。
ajax GET request times out for URL when browser and CURL work
由于您似乎正在使用第三方服务器,因此我不确定这是否可行。