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

Evil Firefox Error - "Параметр или операция не поддерживается базовым объектом"

Я пытаюсь понять, что здесь происходит. Я был у него часами и не могу понять, почему это происходит.

Я делаю несколько вызовов AJAX, и я продолжаю получать эту ошибку только в Firefox (версия 21) в Mac OS X.

Вот ошибка:

 "[Exception... "A parameter or an operation is not supported by the underlying object" 
   code: "15" nsresult: "0x8053000f (InvalidAccessError)"  location: 
   "https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js Line: 6"

Я делаю вызов CORS, поэтому я настроил свой AJAX так:

$.ajaxSetup({
        crossDomain: true,
        xhrFields: {
            withCredentials: true
        }

    });

И продолжайте звонить впредь. В принципе, есть ли у кого-нибудь доступ к этой ошибке? Я вижу некоторые сообщения в Интернете, но все они, похоже, делают с CSS кросс-домена, который я не использую.

4b9b3361

Ответ 1

Хорошо, поэтому после нескольких часов тестирования (и отличного обсуждения с @Dave и @danronmoon, я наконец понял, что происходит.

Вызываемые мной вызовы CORS (Cross-Domain Resource Sharing) были установлены как "async: false" - (которые я понимаю, что я не включал в свое первоначальное сообщение, поскольку я думал, что это несущественно), это, похоже, работать отлично во всех браузерах, кроме Firefox, где jQuery будет лаять на вас, и ваш вызов ajax не удастся.

Спасибо всем за вашу помощь, и я надеюсь, что это поможет кому-то еще!

Ответ 3

Да, это проблема CORS, вызванная использованием ajax. Но как user320550 спрашивает, что, если вам НЕОБХОДИМО использовать свойство "асинхронное: ложное"? Я обнаружил, что использование свойства withCredentials: false в качестве обходного пути устраняет проблему в firefox и не влияет на другие браузеры.

Ответ 4

Так как это первый результат duckduckgo для InvalidAccessError: A parameter or an operation is not supported by the underlying object я добавлю другой источник для этого.

Если вы сталкиваетесь с такой ошибкой при выполнении действий iframe/window, то вам, вероятно, препятствует атрибут sandbox iframe (см. Https://html.spec.whatwg.org/multipage/iframe-embed-object.html#attr- iframe-песочница), даже находясь в том же месте.

В моем случае, iframe пытался сделать window.top.location.href=... после window.top.location.href=... формы. Параметр allow-top-navigation sandbox является обязательным для этого. Забавно, эта опция песочницы не обязательна для перезагрузки верхнего контекста просмотра... она требуется только для навигации по ней.