2011-06-29 43 views
0

我有一個asp.net網站,應該從不同的應用程序/域上傳文件到處理程序。我正在使用jQuery Form插件。嘗試在同一個域上創建示例(上傳到同一個域)時,此設置會成功。當試圖從siteA上傳文件到siteB時,我在firebug中看到處理程序的響應已經返回(在Network選項卡中)並且是有效的,但是,代碼永遠不會進入'success'處理程序,而是在螢火控制檯:jQuery表單插件 - 上傳文件到不同的域

[jquery.form] Server abort: Error: Permission denied to access property 'document' (Error) log: 
[jquery.form] cannot access response document: Error: Permission denied to access property 'document' 
[jquery.form] aborting upload... aborted 

在Chrome中,它是:

Unsafe JavaScript attempt to access frame with URL http://domainB/handler.ashx from frame with URL domainA. Domains, protocols and ports must match. 

現在,我知道的事實,有關於域之間的AJAX調用一些政策,但似乎jQuery的形式插件只是嘗試訪問一些被禁止的網址。 有沒有人有解決它的辦法?任何解決方案!:)

更新: 我結束了黑客jquery.form所以它不會拋出跨站點異常,因爲我不需要上傳的實際結果 - 它適用於我!

回答

2

Check this是的,這是一個同源策略。有方法可以使用flash,iframe,jsonp等工作,但這需要編輯一個插件。

+0

那麼,你是否建議我應該在domainB上添加一個頁面並將其作爲iframe在domainA中使用? – IamDeveloper

+0

我寧可不去那樣。你只需要上傳文件,或者其他一些表單內容。如果只有文件 - 只需使用不同的插件,它可以處理跨域請求(uploadify可以)。如果沒有,請在同一個域上使用代理,並從代碼後面的handler.ashx代碼中發佈文件。 –

相關問題