2013-06-15 2 views
1

У меня есть html-файл (пример ниже) с простой функцией javascript, чтобы проверить, существует ли URL-адрес. Однако он работает только для некоторых существующих URL-адресов (не для всех), и он никогда не работает для несуществующих - просто кажется, что он не дает никакого результата. Я не могу понять, что не так.скрипт, встроенный в html test url

- TSF

 
<HTML><HEAD> 
<script> 
function Exists(url) 
{ 
    var req = new XMLHttpRequest(); 
    req.open('HEAD',url,false); 
    req.send(); 
    return req.status!=404; 
} 
</script> 
</HEAD> 
<BODY> 
<script> 
if (Exists('http://stackoverflow.com/')) { 
    document.write('Exists'); 
} else { 
    document.write('Does not exist'); 
} 
</script> 
</BODY></HTML> 
+0

Возможно: http://en.wikipedia.org/wiki/Same_origin_policy – undone

+0

Вы можете сделать обходной путь с помощью iframe или есть несколько способов сделать это с помощью jQuery (и проблема такая, как описано другими комментаторами) –

ответ

1

Вы столкнулись с "Same Origin Policy" проблемы. Эта концепция предназначена для защиты вашего веб-браузера, так что страницы, которые вы посещаете (например, плохой JavaScript), не могут связываться с неизвестными серверами и, например, они не нарушают вашу конфиденциальность (не могут украсть ваши данные).

Простейшее решение вашей проблемы: переместите логику на ваш сервер (PHP, Ruby, Java, что угодно ...). Пусть ваш сервер выполняет HTTP-запросы и проверяет, что вам нужно. Затем используйте XMLHttpRequest(), чтобы задать ваш сервер, который работает с тем же доменом и портом, поэтому ничто не может пойти не так. Это все.

+0

I предположите, что это объясняет. Я буду следовать твоему предложению. – Tsf

Смежные вопросы