我发送以下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
身份。请帮我。
答案 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,你必须将它作为字符串传递。