我有以下代码:
$.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 页面内容,在它点击警报后,它会跳转到错误部分,显示警报“错误”。
最佳答案
根据评论部分的讨论,您正在尝试向互联网上的任意网址发送跨域 AJAX 调用。由于same origin policy由于浏览器内置的限制,这是不可能的。
可能的解决方法包括使用 JSONP或CORS但由于您将向您无法控制的任意网址发送请求,因此它们可能不是一个选择。在这种情况下,唯一可行的解决方案是编写一个服务器端脚本,将其托管在您的域上,充当桥梁。该脚本将接收一个 url 作为参数,并向该 url 发送 HTTP 请求以检索结果。然后它会简单地将结果返回给响应。最后,您将向您自己的服务器端脚本发送 AJAX 请求。
关于javascript - $.ajax 中类似 $.get 的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12578237/