我試圖用jQuery Form Plugi n來處理ajax格式的文件上傳。Chrome jQuery表單插件跨域安全漏洞?
只要我沒有在表單中輸入[type = file],一切都會正常工作。
當我添加一個文件輸入型的形式,將上傳的文件和工作,因爲它應該是在Firefox,但我得到這個錯誤在Chrome:
不安全的JavaScript嘗試訪問 與網址 http://swbdev.net:8888/inc/ajax/edit_page/ 與網址 http://swbdev.net:8888/site-pages-edit/19d8bb79c95e164f736f324d1b09a33e/1/#add_elements。 域名,協議和端口必須匹配 。
它明確指出域,協議和端口必須匹配。我錯過了什麼,在同樣的錯誤,它顯示了兩個URL和域,協議和端口都匹配?
這裏是JavaScript調用插件:
<script type="text/javascript">
$(document).ready(function() {
var options = {
success: function(data) {
alert(data);
},
dataType: 'html',
url: '/inc/ajax/edit_page/'
};
$('#add_elements_form').ajaxForm(options);
});
</script>
更多信息:
它現在沒有在FireFox爲好,不知道爲什麼它前面的工作,但這裏是在Firefox中的錯誤:
權限遭拒, http://swbdev.net:8888獲得 財產Location.href
它指向在插件這一領域的代碼:
function cb() {
if (xhr.aborted) {
return;
}
var doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
if (!doc || doc.location.href == s.iframeSrc) {
// response not received yet
if (!timedOut) return;
}
io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
var ok = true;
具體地,該行:
if (!doc || doc.location.href == s.iframeSrc
將document.domain添加到AJAX所在的.php文件中發佈解決這個問題,但使解釋和解析返回數據更難...... – 2011-04-13 01:30:21
你解決了嗎? – IamDeveloper 2011-06-29 15:42:15
是的。我在AJAX查詢中調用的PHP文件中添加了JavaScript(document.domain)。 – 2011-07-02 18:28:58