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 кросс-домена, который я не использую.
Ответы
Ответ 1
Хорошо, поэтому после нескольких часов тестирования (и отличного обсуждения с @Dave и @danronmoon, я наконец понял, что происходит.
Вызываемые мной вызовы CORS (Cross-Domain Resource Sharing) были установлены как "async: false" - (которые я понимаю, что я не включал в свое первоначальное сообщение, поскольку я думал, что это несущественно), это, похоже, работать отлично во всех браузерах, кроме Firefox, где jQuery будет лаять на вас, и ваш вызов ajax не удастся.
Спасибо всем за вашу помощь, и я надеюсь, что это поможет кому-то еще!
Ответ 2
это реальное решение Diogo Cardoso, объекту xhr или родительскому объекту не хватает метода toString()
Синхронные запросы CORS не работают в firefox
Ответ 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 является обязательным для этого. Забавно, эта опция песочницы не обязательна для перезагрузки верхнего контекста просмотра... она требуется только для навигации по ней.