在$ .ajax中调用类似$ .get的内容

时间:2012-09-25 07:33:37

标签: javascript ajax jquery

我有以下代码:

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

1 个答案:

答案 0 :(得分:2)

根据评论部分的讨论,您尝试将跨域AJAX调用发送到互联网上的任意网址。由于浏览器内置的same origin policy限制,这是不可能的。

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