我正在尝试通过 ajax 将发布请求发送到另一个域并获得 json 响应。服务器位于我公司的场所,通过日志,我可以看到它正在发送带有 json 的响应。
以下是我的尝试示例:
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)阅读了关于将脚本保存在标签中的信息。这对我也不起作用。有什么想法我在这里做错了吗?