【发布时间】:2013-11-25 11:33:46
【问题描述】:
我在获取跨域请求以使用 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 响应中,开始部分是这样的(我省略了“响应”部分,因为它返回了大量文本): {"responseHeader":{"status":0,"QTime":2,"params":{"q":"title:uw","callback":"jQuery1102035263595171272755_1383771206800","_":"1383771206801" ,"wt":"json"}},"response":'
所以我假设你的意思是: “回调”:“jQuery1102035263595171272755_1383771206800”
【问题讨论】:
-
jsonp 响应格式必须为
jsonpcallback({})其中jsonpcallback是客户端传递过来的回调函数的名称 -
服务器期望的jsonpcallback参数名是什么
-
能否请您发布完整的 json 响应。
-
这不是 jsonp 响应...
-
怎么样?如何做出 jsonp 响应?你的意思是像丹在下面的回答中提到的那样吗?
标签: jquery ajax api cross-domain jsonp