简体   繁体   中英

jQuery check external link

Using Javascript or jQuery, how can I check if an external link is available?

An $.ajax() call is not available as it violates SOP (same problem as here ). I have read about JSONP , but I would like to know if there is a more straight solution, as I don't want to load any data from the external server; what I need is only to check if it is reachable.


EDIT (answer)

I solved it with the following code:

$.ajax({url: 'http://www.example.com',
        type: 'GET',
        dataType: 'jsonp',
        complete: function(jqXHR, textStatus) {
                console.log(jqXHR.status);  // '200' = url reachable
        },
        timeout: 2000
});

The only problem now is that I get a Parse error , but in any case it can be checked if the external link is working.

You could use YQL to check if a URL is available via its JSONP interface.

YQL Console .

Do you have access to server side languages? You could use AJAX to call a local file which uses something like PHP to check the external address.

If you need help with the PHP part, have a look at http://www.catswhocode.com/blog/amazing-things-to-do-with-php-and-curl

Yes, in browsers that support flash you can use this plugin. It has the same api as native xhr. Further if there is no flash plugin in browsers you still can access the other domain. In some browsers if your target domain response has the following headers there will not be an error.

Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type, *

Replace * with appropriate domains.

All above techniques are applicable only if the second domain is under your control. If not then you have to use a proxy as Jleagle said.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM