2012-01-29 163 views
0

所以,我想從我自己的腳本,以本地主機使跨站點AJAX請求。在腳本中(運行在Firefox的Scriptish引擎上)我正在像這樣加載我的腳本發出請求到本地主機

myscript_include.setAttribute('src', 'http://localhost/myscript.js?' + Math.random()); 
head.appendChild(myscript_include); 

它確實有效。然後,在myscript.js,我嘗試閱讀從本地主機的數據(最後,我想就在我的本地GET-POST請求的腳本,而無需編寫實際的Firefox擴展,添加任何需要的功能的網頁)。在做跨站點AJAX請求

按照我的指令添加到myscript.js

$.getJSON('http://localhost/ajaxdata.json', function(json) { 
    alert(json.message); 
}); 

Firefox的JS控制檯顯示GET請求實際上是由和狀態是200確定。它甚至顯示內容長度39,確實如此,但響應字段保持空白,並且不顯示警報!

有什麼不妥建設(除了它的可怕本身)?有什麼辦法可以做我想做的事嗎?

+0

只是跳過所有的注射冗餘代碼,並使用'GM_xmlhttpRequest()'。 – 2012-01-29 23:51:52

+0

注入cruft的想法不是使用ajax - 我可以用同樣的方式在用戶腳本中編寫它。在該名稱空間中運行用於個人使用的腳本非常舒服 - 許多GM引擎問題都是以這種方式避免的。所以如果可能的話,我寧願在不使用GM-API的情況下解決這個問題。 – user1094249 2012-01-30 00:04:56

回答

1

不知道,但也許增加訪問控制允許來源標題爲localhost會解決這個問題?

裁判:https://developer.mozilla.org/En/HTTP_access_control

+0

似乎不是。沒有像這樣的響應狀態至少是200,但是在添加一些關於'Header在.htaccess中添加Access-Control-Allow-Origin「http:// somedomain」'的東西時,它會在響應字段中返回狀態500和Apache錯誤消息。 – user1094249 2012-01-29 23:26:03

+0

@ user1094249你有沒有安裝mod_header?什麼是Apache的錯誤消息,只是內部服務器錯誤?事實上,您正常獲得200個但沒有內容的情況表明,這是一種跨站點安全策略,它拒絕您訪問請求。例如,在stackoverflow上,打開firebug併發出'$ .get('http://www.google.com');'在控制檯中,你會看到相同的行爲。 – Howard 2012-01-30 09:05:17

+0

謝謝,它確實沒有正確安裝。 – user1094249 2012-01-30 19:50:13

相關問題