Я пытаюсь сделать вызов Ajax с jQuery и $.post
в Internet Explorer, но все, что я получаю, является ошибкой при высказывании "Отклоненного разрешения". Проблема является довольно странной, так как происходит только, когда я получаю доступ к странице после того, как я был на любой другой странице.
Например, я ввожу URL в строке адреса и позволяю IE загрузить страницу. Затем я нажимаю на кнопку, таким образом, сценарий должен начать загружать данные JSON. (Сценарий, обеспечивающий данные, находится на том же сервере, и я получаю доступ к нему с относительным URL, так использование другого домена не является проблемой здесь. Даже попробованный для использования абсолютного URL с той же частью хоста.)
Но когда я обновляю страницу затем и пробую ее снова, она работает! То же самое, когда я достигаю той страницы от другой страницы. Сначала ничто не работает, но когда я нажимаю "обновление", все прекрасно.
IE дает мне сообщение об ошибке "Разрешение, отклоненное", в то время как в любом браузере я не замечаю это поведение. Так как я попробовал много вещей и все еще не могу вообразить, где проблема заключается, я хотел бы спросить Вас, что Вы думаете, что проблема могла бы быть?
править: Небольшой пример:
test.html
Test
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
Из сообщения на форуме jquerys здесь у вас должен быть мета-тип контента в качестве первого элемента в вашем теге заголовка.
<!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>
Если это локально (localhost), то в целях безопасности вы должны иметь полный путь.