我想通过ajax发送一个post请求到另一个域并获得json响应。服务器位于我公司的前提下,通过日志,我可以看到它正在发送一个json响应。通过ajax/jQuery向服务器发送ajax POST请求
以下是我尝试的一个样本:
1)
function makeRequest(strURL){
$.get(strURL+"?callback=rest.draw_table_dyn", "{}",
function(resp){
rest.draw_table_dyn(resp);
});
}
2)
xmlhttpPost : function(strURL) {
var xmlHttpReq = false;
var self = this;
if (window.XMLHttpRequest) {
self.xmlHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
self.xmlHttpReq.open('POST', strURL, true);
self.xmlHttpReq.setRequestHeader("Content-Type", "application/json");
self.xmlHttpReq.onreadystatechange = function() {
rest.draw_table_dyn(self.xmlHttpReq.responseText);
}
self.xmlHttpReq.send(null);
}
然而,以下是我遇到的问题:
1)始终服务器被命中“OPTIONS”而不是“GET”或“POST”请求。我从这个链接(http://engin.bzzzt.biz/2010/01/25/cross-domain-xhr-access-control-preflight/)了解到,这是根据标准的预检请求。
但是我可以做一个POST请求吗?我尝试使用$ .post,$ .ajax甚至$ .get,但无济于事。
2)响应数据为空。我需要数据用项目填充页面。有没有办法读取json?目前我只收到一个返回状态为0的空字符串。
我试过xmlHttpRequest,$ .ajax,$ .get和$ .post来发送请求并收到json无济于事。
我在这里阅读(http://stackoverflow.com/questions/4221458/how-to-make-a-jsonp-call-to-an-api-using-jquery)关于在脚本中保留脚本。这也没有为我工作。任何想法我在这里做错了吗?
可能不是你正在寻找的,但是使用php的curl来打电话可能更简单吗? – MikeCruz13
@ MikeCruz13我无法为此使用它。但是,我会在使用PHP时接受您的建议。感谢您的建议。 – thiruvenkadam