$ ajax总是调用错误处理程序

时间:2013-03-02 12:12:53

标签: jquery

我想创建一个简单的“is url active”验证。

这是我到目前为止所做的:

function checkUrl(url) {
    var ok = false;
    $.ajax(
        {
            url: 'http://www.google.com',
            success: function(result) {
                ok = true;
            },
            error: function(result) {
                ok = false;
            },
            async: false
        }
    );
    return ok;
}

但它总是返回假。请注意,“www.google.com”网址仅用于测试目的。

2 个答案:

答案 0 :(得分:0)

试试这个: -

function buildQuery() {
            return "select * from json where url = 'google.com'";
        }

        $.ajax({
           url: 'http://query.yahooapis.com/v1/public/yql',
           data: {
               q: buildQuery(),
               format: "json"
           },
           dataType: "jsonp",
           success: function (result) {
               alert("Success :" +JSON.stringify(result));
           },
           error: function (result) {
               alert("error: " + JSON.stringify(result));
           },
       }
   );

答案 1 :(得分:0)

由于所谓的Same Origin Policy,它是由浏览器实施的安全策略,可防止跨域ajax调用。

对此的解决方案是使用JSONP,但您要连接的服务器必须支持此策略。

jQuery.ajax支持jsonp。

例如:

$.getJSON('<resource-url?callback=?>').done(function(data){
    //Your callback logic
});