我有以下代码:
$.get(url, {}, checkResponse)
以下功能:
function checkResponse(content) {}
这里的参数“content”是“get”的结果。我希望实现$.ajax
能够在跳转到下一个代码块之前等待进程完成。我尝试了以下代码,但它没有用。
$.ajax({
async: false,
type: 'GET',
url: url,
success: function (data) {
alert(data.toString());
checkResponse(data);
},
error: function (data) {
alert("error");
}
});
发生了什么,data.toString()
的警报给出了空字符串值,而它应该给我url页面内容,在它点击警报后它会跳转到错误部分并显示警告“错误”。
答案 0 :(得分:2)
根据评论部分的讨论,您尝试将跨域AJAX调用发送到互联网上的任意网址。由于浏览器内置的same origin policy限制,这是不可能的。
可能的解决方法涉及使用JSONP或CORS,但由于您将向无法控制的任意网址发送请求,因此可能无法选择。在这种情况下,唯一的可行的解决方案是您编写一个服务器端脚本,您将在您的域上托管充当桥接器。此脚本将接收url作为参数,并向此URL发送HTTP请求以检索结果。然后它只会将结果返回给响应。最后,您将向您自己的服务器端脚本发送一个AJAX请求。