发送ajax请求不起作用

时间:2013-08-09 04:37:09

标签: ajax mongodb jquery curl

我发送以下curl请求以获取mongodb的结果。

curl --data 'cmd={"geoNear" : "items", "near":[6.8590845,79.9800719]}' 'http://82.196.xxx.xxx:27080/weather/_cmd'

它正在发挥作用。我尝试发送ajax请求来执行上面的curl请求。

         $.ajax({
            url: 'http://82.196.xxx.xxx:27080/weather/_cmd',
            type: 'POST',
            // dataType: 'default: Intelligent Guess (Other values: xml, json, script, or html)',
            data: {"geoNear" : "items", "near":[6.8590845,79.9800719]},
        })
        .done(function() {
            console.log("success");
        })
        .fail(function() {
            console.log("error");
        })
        .always(function() {
            console.log("complete");
        });

我认为问题是我的数据对象。卷曲请求有'cmd={"geoNear" : "items", "near":[6.8590845,79.9800719]}。但我不知道它如何转换为ajax请求。

但它不起作用。我获得200 OK身份。请帮我。

1 个答案:

答案 0 :(得分:3)

 $.ajax({
    url: '/weather/_cmd',
    type:'POST',
    dataType: 'json',
    crossDomain : true,
    data: {
        cmd: JSON.stringify({
            "geoNear" : "items",
            "near": [6.8590845,79.9800719]
        })
    },
    success: function(res) {
        //do stuff with res
    }
});

ProxyPass /weather http://82.196.11.207:27080/weather/_cmd
ProxyPassReverse /weather http://82.196.11.207:27080/weather/_cmd

将以上代理传递添加到您的Apache并尝试此操作。它会工作。问题是你不能通过使用jsonp传递POST请求。我们需要POST请求。这是一种方法。 :D我测试了它并且对我来说非常适合。

-update - 它不接受json,你必须将它作为字符串传递。