0

我无法获得使用 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":"jQ‌​uery1102035263595171272755_1383771206800","_":"1383771206801","wt":"json"}},"resp‌​onse" :'

所以我假设你的意思是:“回调”:“jQuery1102035263595171272755_1383771206800”

4

1 回答 1

0

jQuery 在一个名为的参数中发送一个函数名称callback,它需要您的 JSON 服务在它返回时调用。Solr 需要json.wrf根据Solr wiki调用此参数。尝试向您的 jQuery ajax 调用添加一个jsonp:选项,如下所示:

    $.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.
      }
    });
于 2013-11-13T02:31:26.910 回答