0

我发送以下 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");
        });

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

但它不起作用。我得到了200 OK地位。请帮我。

4

1 回答 1

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 请求。mongo 我们需要 POST 请求。这是一种方法。:D 我对它进行了测试,并且非常适合我。

-update - 它不会接受 json 并且您必须将其作为字符串传递。

于 2013-08-20T08:13:23.487 回答