我无法获得使用jQuery的跨域请求,似乎无法弄清楚发生了什么。基本上我正在尝试查询Solr服务器,并且都没有调用成功或错误函数。在Chrome的Javascript控制台中,我没有遇到任何错误。此外,当我只在URL栏中键入“mysolrserver /?wt = json& q = title:uw”时,我会得到一个json格式的字符串。
我用“mysolrserver”替换了我的ip。 提前谢谢!
我的javascript文件:
"use strict";
(function() {
window.onload = function(){
document.getElementById("search").onclick = request;
}
function request(){
$.ajax('mysolrserver/?wt=json&q=title:uw', {
dataType: 'jsonp',
success: function(data){
alert("Success");
},
error: function(error, data, type){
alert(data + ": " + type + "."); //type isn't giving any response.
}
});
}
})();
更新 在我从服务器获得的json响应中,开头部分是这个(我省略了'response'部分,因为它返回了大量的文本): { “responseHeader”:{ “状态”:0 “QTIME”:2 “PARAMS”:{ “Q”: “标题:UW”, “回调”: “JQ uery1102035263595171272755_1383771206800”, “_”: “1383771206801” “重量”: “JSON”}}, “RESP ONSE”:“
所以我假设你的意思是: “回调”: “jQuery1102035263595171272755_1383771206800”
答案 0 :(得分:0)
jQuery正在一个名为callback
的参数中发送一个函数名,它需要你的JSON服务在它返回时调用。根据{{3}},Solr需要将此参数称为json.wrf
。尝试像这样添加the Solr wiki:
$.ajax('mysolrserver/?wt=json&q=title:uw', {
jsonp: 'json.wrf',
dataType: 'jsonp',
success: function(data){
alert("Success");
},
error: function(error, data, type){
alert(data + ": " + type + "."); //type isn't giving any response.
}
});