2011-10-15 27 views
0

在我的js文件有此行

xhr.open("POST", $id("upload").action, true); 
xhr.setRequestHeader("X_FILENAME", file.name); 
xhr.send(file); 
中的index.php

有這樣

<form id="upload" action="upload1.php" method="POST" enctype="multipart/form-data"> 

形式所以,如果我理解這一點ajax的。開正確的,它應該張貼該文件以「upload1.php」形式發送到表單ID爲「upload」的動作。現在如果我進入upload1.php並且有

file_put_contents('uploads/' . $fn,file_get_contents('php://input')); 

它將文件放在一個名爲uploads的文件夾中。但如果我把一些簡單的東西

echo "in upload1.php"; 

它完全跳過它,不輸出任何東西。理想情況下,我想在upload1.php中重定向到重定向到另一個php文件,然後將文件放入uploads文件夾中。但即使頭(「」);等等不起作用。

任何幫助或建議?我是新來的JavaScript和AJAX,發現它令人困惑。

+0

更改。 AJAX適用於頁面內的後臺操作。如果你想讓那個頁面移動,那麼你的ajax響應必須是一個指向原始javascript的信號來執行'window.location'類型的事情。 – Petah

+0

什麼,你不能做一個重定向在一個AJAX調用,並期望調用頁面 –

+0

嘗試使用Firebug或類似工具檢查發生了什麼(是否存在請求)。 – TimWolla

回答

0

它不輸出任何東西(至少在屏幕上),因爲你已經提出了xhr請求。它基本上意味着echo語句被髮送給調用者,在你的情況下是js文件。所以,你必須看到

var return = xhr.responseText; //return in plain text 

加上響應,你可以使用另一個PHP文件函數和類,用include_once或require_once方法。如果你真的想重定向到另一個頁面,你也可以與像JS代碼做到這一點:

window.location = 'some place'; 
JS庫您使用