Подтвердить что ты не робот

"Разрешено отклонение" в Internet Explorer и jQuery

Я пытаюсь выполнить вызов AJAX с помощью jQuery и $.post в Internet Explorer, но все, что я получаю, это ошибка, говорящая "Permission denied". Проблема довольно странная, поскольку она возникает только при доступе к странице после того, как я был на другой странице.

Например, я набираю URL-адрес в адресной строке и позволяю IE загружать страницу. Затем я нажимаю кнопку, поэтому script должен начать загрузку данных JSON. (script предоставление данных лежит на одном сервере, и я обращаюсь к нему с относительным URL-адресом, поэтому использование другого домена здесь не проблема). Даже попытался использовать абсолютный URL-адрес с той же главной частью.)

Но когда я обновляю страницу и повторю попытку, она работает! То же самое, когда я прихожу на эту страницу с другой страницы. Сначала ничего не работает, но когда я нажимаю "обновлять", все в порядке.

IE дает мне сообщение об ошибке "Permission denied", в то время как в каждом другом браузере я не замечаю этого поведения. Поскольку я пробовал много вещей и до сих пор не могу представить, где лежит проблема, я хотел бы спросить вас, что вы думаете о проблеме?

изменить Небольшой пример:

test.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> 
    <head> 
        <script type="text/javascript" src="/ietest/jquery.js"></script> 
        <script type="text/javascript" src="/ietest/test.js"></script> 
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    </head> 
    <body> 
        <a href="#">Test</a>
    </body> 
</html>

ajax.html

It works!

test.js

$(document).ready(function(){
    $( 'a' ).click(function(){
        $.post( '/ietest/ajax.html', function( data ) {
            alert( data );
        });
    });
});

Попробуйте здесь: http://t1318.greatnet.de/ietest/test.html

4b9b3361

Ответ 1

Из сообщения на форуме jquerys здесь, вы должны иметь тип контента meta в качестве первого элемента в своем главном теге.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script type="text/javascript" src="/ietest/jquery.js"></script> 
        <script type="text/javascript" src="/ietest/test.js"></script>  
    </head> 
    <body> 
        <a href="#">Test</a>
    </body> 
</html>

Ответ 2

Если его локальный (localhost), то по соображениям безопасности вы должны иметь полный путь.