我想在Firefox/Greasemonkey userscript中檢索HTML頁面,請求爲document
。當詢問DOM對象時,XMLHttpRequest.send()拋出異常
編輯:這是而不是一個跨域請求。
這裏是我的示例代碼:
var r = new XMLHttpRequest();
r.open("GET", document.location.href, true);
r.responseType = "document";
r.send(null);
這看起來就像例子https://developer.mozilla.org/en/HTML_in_XMLHttpRequest, 但r.send(null)
導致TypeError
。原因,而不是拋出!包裹在try...catch
行不會改變任何東西,這似乎是一個回調或事件處理程序引發異常:
TypeError: document.location is null
追溯是指一個Firefox內部event.js
文件,而不是我的腳本。
刪除行設置responseType
擺脫了異常,添加回調沒有。 但是,響應是有效的,並且responseXML
提供了一個DOM樹。 我正在使用FF 13.0.1。
我錯過了什麼,或者這是一個錯誤?
解決方案:這與由Mozilla的Addon Builder創建的擴展有關,而不是Firefox。
我在Chrome上遇到以下錯誤: XMLHttpRequest無法加載https://www.google.de/。起源http://fiddle.jshell.net是不允許的Access-Control-Allow-Origin.'似乎很清楚... [示例這裏](http://jsfiddle.net/HTcKP/57/) – ManseUK 2012-07-19 07:51:24
這是一個完全不同的問題。當腳本來自'jshell.net'時,當然對'google.com'的http請求是不允許的。嘗試它作爲一個用戶腳本,這個錯誤將消失。 – 2012-07-19 07:57:21
Firefox中沒有event.js文件。聽起來像你有一些擴展安裝,看着所有的XHRs和螺絲了......什麼是問題event.js文件的完整URI? – 2012-07-20 05:52:03