0

我有以下代码:

$.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 页面内容,并且在它命中警报后它跳转到错误部分并显示警报“错误”。

4

1 回答 1

2

根据评论部分的讨论,您正在尝试将跨域 AJAX 调用发送到 Internet 上的任意 url。由于浏览器内置的相同来源策略限制,这是不可能的。

可能的解决方法涉及使用JSONPCORS,但由于您将向您无法控制的任意 url 发送请求,因此它们可能不是一个选项。在这种情况下,唯一可行的解​​决方案是让您编写一个服务器端脚本,该脚本将托管在您的域上,充当桥梁。该脚本将接收一个 url 作为参数并向该 url 发送一个 HTTP 请求以检索结果。然后它将简单地将结果返回给响应。最后,您将向您自己的服务器端脚本发送 AJAX 请求。

于 2012-09-25T10:56:59.447 回答